使用sed提取匹配的数字

时间:2012-10-25 13:57:02

标签: xml sed match

我有一个带有1行长字符串的xml文件 我想在“”之后提取数字 像下面的例子,我想得到131

.....<yt:duration seconds='131'/>....

“....”在这里表示“”之前和之后的子串,它们长有不同的字符,数字和标记。

如何使用sed提取匹配号码? 谢谢

2 个答案:

答案 0 :(得分:0)

使用grep,而不是sed

grep -o "<yt:duration seconds='[0-9]\+'/>" file.txt | cut -f2 -d"'"

答案 1 :(得分:0)

一个sed解决方案(使用@作为分隔符):

sed -r "s@.*<yt:duration seconds='([0-9]+)'/>.*@\1@" file.txt

对于OSX,请将-r替换为-E