【发布时间】:2012-12-19 23:39:29
【问题描述】:
我想得到<sometag param='和'>之间的字符串
我尝试使用Get any string between 2 string and assign a variable in bash 的方法来获取“x”:
echo "<sometag param='x'><irrelevant stuff='nonsense'>" | tr "'" _ | sed -n 's/.*<sometag param=_\(.*\)_>.*/\1/p'
问题(除了效率低,因为我无法为 sed 正确转义撇号)是 sed 匹配最大值,即输出是:
x_><irrelevant stuff=_nonsense
但正确的输出应该是最小匹配,在这个例子中只是“x”
感谢您的帮助
【问题讨论】:
-
对于结构化数据,请使用了解结构的工具。
man xsltproc