SED:如何提取版本字符串

Wil*_*mKF 3 version-control sed version

我想使用 sed 从命令中提取版本号:

svnversion --version
Run Code Online (Sandbox Code Playgroud)

这给出了如下输出:

svnversion, version 1.6.2 (r37639)
   compiled May 10 2009, 12:41:21

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
Run Code Online (Sandbox Code Playgroud)

用 sed 处理后,我只想:

1.6.2
Run Code Online (Sandbox Code Playgroud)

到目前为止,我有这个怪物(由于我的无知):

svnversion --version | sed s/[\wa-zA-Z//\(\):,]*//g | sed 's/[ ]//' | sed 's/[ ]//' | sed 's/[ ][0-9 ./n/-]*//'
Run Code Online (Sandbox Code Playgroud)

我确信专家可以轻松提供一个简单而优雅的解决方案。

Dar*_*all 6

我知道这不是使用 sed,但根据您的输出,这更容易。

svnversion --version | head -1 | awk '{print $3}'
Run Code Online (Sandbox Code Playgroud)

如果你有 perl 可用...

svnversion --version | perl -lne 'print $1 if /version (\d+.\d+.\d+)/'
Run Code Online (Sandbox Code Playgroud)