-1

想知道是否可以从文本文件中的字符串中提取版本号。(Windows 和 Linux)

例如,文本文件包含,

some_soft-9.1.2-windows.zip
some_soft-9.2.2-windows.zip
some_soft-10.0.1-windows.zip
some_soft-10.1.2.3-windows.zip

然后命令的输出应该只获得

9.1.2
9.2.2
10.0.1
10.1.2.3

因此,可以处理这些版本号以下载最新或所需的应用程序版本。

4

3 回答 3

1

使用正则表达式提取它们

([0-9]+.){2,}[0-9]+
于 2013-10-21T14:34:41.310 回答
0

是的,这是可能的,而且不难做到。尝试对如何拆分字符串进行一些研究。在您的情况下,只需用“-”拆分字符串并获取第二个元素。

于 2013-10-21T14:40:59.917 回答
0

如果您可以使用,这个单行脚本就可以完成这项工作:

perl -pe '($_)=/([0-9]+([.][0-9]+)+)/' 

的示例:

$> V=$(perl -pe '($_)=/([0-9]+([.][0-9]+)+)/' <<< 'some_soft-9.1.2-windows.zip')
$> echo "$V"
9.1.2

$> echo 'A2 33. Z-0.1.2.3.4..5' | perl -pe '($_)=/([0-9]+([.][0-9]+)+)/'
0.1.2.3.4

请注意,此命令行提取的版本号不带回车。

另请参阅this other SO answer,perl根据您的上下文提供许多示例和更多脚本

于 2013-10-25T19:15:40.253 回答