正则表达式捕获版本号

时间:2012-11-21 13:55:48

标签: regex sed awk grep

我有这样的一行

<zimlet name="com_feeder_sugarbee" version="0.7.1" description="Sugar Bee v0.7.1">

我想只提取字符串0.7.1

您会建议使用哪些工具?

我试过sed,awk,grep ......我不擅长任何一个。

修改

什么语言/工具是“。+?”之类的模式和“。*?”应该尽可能返回最短的比赛?我确定我在某个地方看到了这个,但不记得在哪里。

2 个答案:

答案 0 :(得分:5)

使用sed的一种方式:

sed -n 's/.*version="\([^"]*\).*/\1/p' file

或者,如果您的grep版本支持Perl-regex:

grep -oP '(?<=version=")[^"]*' file

结果:

0.7.1

答案 1 :(得分:1)

awk -F\" '{print $4}' file

这里有一些无用的文字,因为这个愚蠢的网页界面不会接受短于30个字符的答案。