我正在读这个问题:使用 bash 提取文本文件中 2 个标记之间的行 https://stackoverflow.com/questions/4857424/extract-text-from-between-2-tokens-in-a-text-file-using-bash因为我有一个非常相似的问题......
我必须提取(并在打印之前将其保存到 $variable)此 xml 文件中的文本:
<--more labels up this line>
<ExtraDataItem name="GUI/LastVMSelected" value="14cd3204-4774-46b8-be89-cc834efcba89"/>
<--more labels and text down this line-->
我只需要获取 value= (显然没有括号,也没有“value=”),但首先,我认为它必须搜索“GUI/LastVMSelected”才能到达这一行,因为其他中可能有类似的值字段线,该标签的值就是我想要的。
如果它们位于同一行(正如它们似乎来自您的示例),那就更容易了。只是:
sed -ne '/name="GUI\/LastVMSelected"/s/.*value="\([^"]*\)".*/\1/p'
解释:
- -n:禁止默认打印
- /name="GUI\/LastVMSelected"/:仅匹配此模式的行
- s/.value="([^"])"./\1/p
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)