想知道是否可以从文本文件中的字符串中提取版本号。(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
因此,可以处理这些版本号以下载最新或所需的应用程序版本。
使用正则表达式提取它们
([0-9]+.){2,}[0-9]+
是的,这是可能的,而且不难做到。尝试对如何拆分字符串进行一些研究。在您的情况下,只需用“-”拆分字符串并获取第二个元素。
如果您可以使用perl,这个单行脚本就可以完成这项工作:
perl -pe '($_)=/([0-9]+([.][0-9]+)+)/'
使用bash的示例:
$> 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
请注意,此perl命令行提取的版本号不带回车。