Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个带有 1 行长字符串的 xml 文件我想提取 "" 之后的数字,如下例所示,我想得到 131
.....<yt:duration seconds='131'/>....
这里的“....”是指“”之前和之后的子字符串,它们很长,带有不同的字符、数字和标记。
如何使用 sed 提取匹配号码?谢谢
一个 sed 解决方案(@用作分隔符):
@
sed -r "s@.*<yt:duration seconds='([0-9]+)'/>.*@\1@" file.txt
对于 OSX,替换-r为-E
-r
-E
使用grep,而不是sed:
grep
sed
grep -o "<yt:duration seconds='[0-9]\+'/>" file.txt | cut -f2 -d"'"