正则表达式捕获版本号

ych*_*che 1 regex awk grep sed

我有这样一条线

<zimlet name="com_feeder_sugarbee" version="0.7.1" description="Sugar Bee v0.7.1">
Run Code Online (Sandbox Code Playgroud)

我想只提取字符串0.7.1

你会建议什么工具?

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

编辑

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

Ste*_*eve 5

一种方式使用sed:

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

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

grep -oP '(?<=version=")[^"]*' file
Run Code Online (Sandbox Code Playgroud)

结果:

0.7.1
Run Code Online (Sandbox Code Playgroud)