从文本文件中的字符串中提取版本号

时间:2013-10-21 14:28:37

标签: numbers version extract

想知道是否可以从文本文件中的字符串中提取版本号。(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

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

3 个答案:

答案 0 :(得分:1)

使用正则表达式提取它们

([0-9]+.){2,}[0-9]+

答案 1 :(得分:0)

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

答案 2 :(得分: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 providing many examples and more perl scripts depending on your context