我正在尝试从 xml 文档中提取一个值,该文档已作为变量读入我的脚本中。原始变量,$data, is:
<item>
<title>15:54:57 - George:</title>
<description>Diane DeConn? You saw Diane DeConn!</description>
</item>
<item>
<title>15:55:17 - Jerry:</title>
<description>Something huh?</description>
</item>
我希望提取第一个标题值,所以
15:54:57 - George:
我一直在使用 sed 命令:
title=$(sed -n -e 's/.*<title>\(.*\)<\/title>.*/\1/p' <<< $data)
但这只输出第二个标题值:
15:55:17 - Jerry:
有谁知道我做错了什么?
谢谢!
As 查尔斯·达菲 https://stackoverflow.com/a/17333937/970195已经说过,XML 解析器最好使用适当的 XML 解析工具进行解析。对于一次性工作,以下内容应该有效。
grep -oPm1 "(?<=<title>)[^<]+"
Test:
$ echo "$data"
<item>
<title>15:54:57 - George:</title>
<description>Diane DeConn? You saw Diane DeConn!</description>
</item>
<item>
<title>15:55:17 - Jerry:</title>
<description>Something huh?</description>
$ title=$(grep -oPm1 "(?<=<title>)[^<]+" <<< "$data")
$ echo "$title"
15:54:57 - George:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)