使用单行sed命令,我怎样才能获得某事和某人值?
<value name="something">someone</value>
使用以下正则表达式<value name="(.*)">(.*)<\/value>
我可以使用网站https://www.regex101.com/成功检索值。但是我不确定如何使用命令行来完成它。
提前致谢。
答案 0 :(得分:1)
像
这样的东西sed 's#.*name="\(.*\)">\(.*\)<.*#\1 \2#g'
<强>测试强>
$ echo "<value name=\"something\">someone</value>" | sed 's#.*name="\(.*\)">\(.*\)<.*#\1 \2#g'
something someone
答案 1 :(得分:0)
试试这个。
sed -r 's/.*"(.*)">(.*)<.*>$/\1 \2/'
答案 2 :(得分:0)
注意usual caveats关于使用正则表达式解析XML,这里有一个XML解析工具,可以对样本数据进行操作,找到&#34;值&#34;的属性值和标记值。标记为&#34;名称&#34;属性。
xmlstarlet sel -t -v '//value[@name]/@name' -n -v '//value[@name]' -n file.xml
something
someone