在 Mac 上的 bash 中从 xml 中提取值

2024-03-02

我需要从此 xml 中提取名称值(产品查找器):

文件:config.xml

<?xml version="1.0" encoding="utf-8"?>
<widget id="com.abc.app" version="1.3.1" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0" ios-CFBundleVersion="1.3.1.5" android-versionCode="5">
    <name>Product Finder</name>
    <description>
        Description
    </description>
</widget>

我试过了:

mles$ cat config.xml | grep '<name>'
    <name>Product Finder</name>

其他一些答案建议使用grep -oPm1 "(?<=<xmltag>)[^<]+",但这会产生错误:

mles$ cat config.xml | grep -oPm1 "(?<=<name>)[^<]+"
usage: grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
[-e pattern] [-f file] [--binary-files=value] [--color=when]
[--context[=num]] [--directories=action] [--label] [--line-buffered]
[--null] [pattern] [file ...]

如何获取名称值?我需要一个没有依赖关系的解决方案,所以grep会被优先选择


grep只能找到该行,您必须使用附加工具来提取名称,例如sed(不是额外的依赖项):

grep '<name>' config.xml | sed "s@.*<name>\(.*\)</name>.*@\1@"

What sed这里是采取一切之间<name></name>并用标签之间找到的文本替换整行

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Mac 上的 bash 中从 xml 中提取值 的相关文章

  • 如何在 CakePHP 中“验证”人名?

    我有一个 PHP 脚本 应该检查 有效 的人名 但最近破解了带有空格的名称 因此我们向验证器添加了空格 除了这样做之外 有没有办法向 CakePHP 的验证器添加黑名单以阻止所有 无效 字符 而不是允许 有效 字符 注意 我 通常 知道如何
  • Python 中的 grep 等价物是什么?

    假设我有一个文本文件 其中包含 我喜欢大象 这一行 如果我捕获所述文件并将其通过管道发送到 grep大象 我会得到整行 我喜欢大象 如何使用 re 在 Python 中实现此功能 我一直在尝试以下方法 test re search elep
  • 将 LINQ 嵌套到 XML

    我有一些来自遗留应用程序的非标准 XML
  • sed 错误“未终止的 's' 命令”故障排除

    我正在构建一个script https stackoverflow com questions 4036832 replacing a specific term in an xml file其中 它将用文件夹路径替换 XML 文件中的模式
  • 从 php 执行 bash 脚本并立即输出回网页

    我有一组 bash 和 Perl 脚本 开发在 Linux Box 上部署所需的目录结构 可选 从svn导出代码 从这个源构建一个包 这在终端上运行良好 现在 我的客户请求此流程的 Web 界面 例如 某些页面上的 创建新包 按钮将一一调用
  • 计算 XML 中特定 XML 节点的数量

    请参阅此 XML
  • 使用正则表达式搜索 Ruby 数组

    你好 我有一个小的 ruby 函数 它可以分割出一个 Ruby 数组 如下所示 def rearrange arr from to sidx arr index from eidx arr index to arr sidx arr sid
  • Python正则表达式非贪婪匹配

    这个问题来自 用Python自动化无聊的事情 一书 atRegex1 re compile r w 1 2 at atRegex2 re compile r w 1 2 at atRegex1 findall The cat in the
  • 我可以在 XSLT 中创建模板吗?

    我想使用 XSLT 从 XML 创建 ASP NET 用户控件 目前我真的把结果一点一点地拼凑起来
  • 如何使用正则表达式在 Java 中检查确切的电话号码

    你好 我是正则表达式的新手 我不知道我在做什么 这就是我寻求帮助的原因 我有以下电话号码 359878123456 我需要检查该电话号码是否符合条件 359 是准确的扩展名 第二个 2 个数字是操作员号码和以下 3 个数字之一 87 88
  • 如何使正则表达式匹配不区分大小写?

    我有以下正则表达式加拿大的邮政编码 http en wikipedia org wiki Postal codes in Canada ABCEGHJKLMNPRSTVXY 1 d 1 A Z 1 d 1 A Z 1 d 1 它工作正常 但
  • 使用基于 DFA(线性时间)正则表达式捕获组:可能吗?

    是否可以使用基于 DFA 的正则表达式实现捕获组 同时保持相对于输入长度的线性时间复杂度 直觉上我认为不是 因为子集构造过程不知道它可能落在哪个捕获组内 但这是我第一次意识到这可能是一个潜在的问题 所以我不知道 是否可以使用基于 DFA 的
  • 将维基百科中的表格加载到 R 中

    我正在尝试从以下 URL 将最高法院法官表加载到 R 中 https en wikipedia org wiki List of Justices of the Supreme Court of the United States http
  • 使用正则表达式模式查找 -name 并使用 cp 替换文件名

    目前我正在使用该命令cron复制 data从源到目标路径 find source path name data exec cp target path 源码结构为 source path category1 001 data source
  • 在bash脚本中分割字符串[重复]

    这个问题在这里已经有答案了 我想分割一个字符串并需要其中的一些参数 USER dn uid dfl3030 cn users cn accounts dc tenant dc ycs dc io cn Reb Lena Schmidt kr
  • 记录骆驼路线

    我的项目中有几个 Camel 上下文 如果可能的话 我想以逆向工程方式记录路线 因为我们希望保持与上下文相关的文档最新 最好的方法是什么 我们倾向于预先实际设计路线 并使用来自EIP book http www eaipatterns co
  • 如何通过php获取网页的Open Graph协议?

    PHP 有一个简单的命令来获取网页的元标记 get meta tags 但这仅适用于具有名称属性的元标记 然而 开放图谱协议如今变得越来越流行 从网页获取 opg 值的最简单方法是什么 例如 我看到的基本方法是通过 cURL 获取页面并使用
  • 查找哪个程序运行另一个程序

    我有一个 NAS 运行在 Redhat Linux 的有限版本上 我按照指示破解了它 这样我就可以访问 shell 这很有帮助 我还做了一些修改 其他人也做过修改 除了一个问题之外 它们似乎都工作得很好 不知何故 每隔 22 天 系统就会关
  • vim 中的正则表达式查找和替换:向数字添加 .0

    我有一个如下所示的文件 1 1 0 1 6 1 0 2 8 1 0 3 10 1 0 4 12 1 0 6 如何为所有数字添加 0 后面的数字除外 我认为用正则表达式来做到这一点应该不会太难 但是我的正则表达式知识太生疏了 使用 VIM s
  • 基于xsd模式生成xml(使用.NET)

    我想根据我的 xsd 架构 cap xsd 生成 xml 文件 我找到了这篇文章并按照说明进行操作 使用 XSD 文件生成 XML 文件 https stackoverflow com questions 6530424 generatin

随机推荐

  • Angularjs:ReferenceError:范围未定义

    我是 Angularjs 的初学者 在理解模块和范围方面有一些困难 我不断收到范围未定义的错误 但我不明白为什么 首先 我将控制器链接到设置路线的位置 但由于控制器内的函数是在提交按钮上调用的 因此单击我将其拿走 我试过把它放回去 但这没有
  • pytest从不同的测试文件独立导入相同的模块

    以下主题模块包含两个函数 其中之一操作全局变量 mod py def global setter global x x 123 print setter x x def global getter print getter x x 每个功能
  • 如何在magento的成功页面中动态集成JS代码

    我知道 success phtml 是我应该放置我想要执行的代码的文件 但是我从 CJ 收到这个文件 它不是 html 而是一个 php 类 问题很简单 我想知道如何在收到订单后将此文件集成到 success phtml 中 谢谢 clas
  • np.ndarray`“is”中的奇怪行为

    is 内置运算符显示元素的奇怪行为np ndarray 尽管右侧和左侧的 id 相同 但 is 运算符返回 False 此行为特定于np ndarray a np array 1 b a view print id a 0 id b 0 T
  • postgres 使用 join 更新

    我正在尝试使用 ht 中的数据更新表 tr 两者都有几乎相同的列 所以为了测试我运行了这个查询 SELECT FROM tr a RIGHT OUTER JOIN ht b USING date name ft WHERE ft IS NO
  • 判断设备是否有触摸屏

    我的应用程序可以在标准手机上运行 但它也可以在 Android 播放器上运行 我通过 HDMI 将其连接到电视并使用鼠标进行导航 有没有办法以编程方式确定设备是否支持触摸屏 以便我可以区分两种导航方式 I tried this http d
  • 从项目 azure devops REST API 获取所有工作项

    我正在使用 Azure Devops API 通过 AWS Lambda node js 创建通知机器人 此时 我需要检查每个任务工作项是否附加到父用户故事 第一步是获取 给定 项目上的所有任务工作项 对于这一步 我正在阅读 azure d
  • 最坏情况时间复杂度分析伪代码

    有人可以帮我分析这个伪代码的时间复杂度吗 我正在寻找最坏情况的复杂度 但我无法弄清楚它是 O n 4 O n 5 还是完全其他的东西 如果您能详细说明您是如何解决这个问题的 我们将不胜感激 sum 0 for i 1 to n do for
  • 在构造函数中创建一个指针,指向 C++ 中类的实例

    我对这些 C 指针有点困惑 我想知道是否可以在构造函数内创建一个指向类实例的指针 以下行中的内容 class Room public Room Room private Room ptrToSelf Room Room ptrToSelf
  • zeppelin hive 解释器抛出 ClassNotFoundException

    我已经部署了zeppelin 0 6并在Jdbc解释器下配置了hive 尝试执行 hive show databases Throws org apache hive jdbc HiveDriver 类 java lang ClassNot
  • 如何访问封装在类中的未命名“枚举类”?

    class A public enum class HELLO WORLD 众所周知 在一个class 声明一个简单的enum 而不是enum class 是一个更好的主意 因为它已经用class鉴别 但上面的说法仍然是有效的C 0x签名
  • 将字符串写入文本文件

    我正在将日志保存到 SD 卡上的 txt 文件中 但是一旦保存了两行 它就会覆盖它并重新开始 这是我的代码 public static String getTimestamp try SimpleDateFormat dateFormat
  • 从Python中的一行中提取特定的子字符串

    我有一个包含多行格式的文件 格式如下 DIV ID 0X78800009 EXT LOS ANGELES TY STANDARD OWN 0X74400002 ABBR LA 我需要提取 EXT 值 但只提取引号中的部分 我目前正在使用这个
  • 在 Spark 上执行多个 SQL 查询

    我在文件 test sql 中有一个 Spark SQL 查询 CREATE GLOBAL TEMPORARY VIEW VIEW 1 AS select a b from abc CREATE GLOBAL TEMPORARY VIEW
  • Android 蓝牙 connect() 抛出错误

    我有一个项目要求 其中我们有一个包含两个组件的产品 一个 Android 平板电脑和一个 PCB 包含 RN42 蓝牙芯片 这两个组件位于塑料外壳内 因此总是彼此靠近 这两个组件设备最初会配对一次 因此配对信息将永远存在于平板电脑中 Pro
  • 无法在Python3中导入sqlite3

    我无法在 Python 版本 3 5 0 中导入 sqlite3 模块 这是我得到的 gt gt gt import sqlite3 Traceback most recent call last File
  • Mysql 5有管理分层数据的程序吗?

    我使用嵌套集模型来保存分层数据 http mikehillyer com articles managing hierarchical data in mysql 进入数据库表 我感兴趣的是 MySQL 是否内置支持添加 删除节点 或者我必
  • 使用 javascript 按值查找复选框

    我使用这个 JavaScript 来查找我需要的复选框并选中它们
  • 使用 JDK 1.6 时,我的 Web 应用程序中是否需要 stax-api-1.0.x?

    我目前正在开发一个使用 Jersey 进行 REST 的 Web 应用程序 我使用maven stax api 1 0 1和1 0 2都被拉入我的web inf lib中 我以为stax api是JDK1 6的一部分 为什么这些 JAR 包
  • 在 Mac 上的 bash 中从 xml 中提取值

    我需要从此 xml 中提取名称值 产品查找器 文件 config xml