检查行包含版本号

时间:2017-03-17 11:16:41

标签: bash

我有一个.txt文件,其中有多行只包含1个单词。 这些行中的一些包含版本号,例如1.2.3.4。其他行包含其他信息,例如文件名(不使用数字)。

如何检查此特定文件的最后4行,并检查哪些行包含版本号?我需要输出只是一个版本号(最后4行应该是3个文件名,只有1个版本号,所以无论如何结果总是1个版本号。)

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用tail获取最新的4行:

tail -4 filename.txt

因为在你的情况下,你只有一行数字而其余部分没有数字,那么你可能只得到以grep开头的数字:

tail -4 filename.txt | grep "^[0-9]"

答案 1 :(得分:0)

我会用

vn=$(tail -n 4 "$file" | grep -oP '\d+(\.\d+)*')

它将从最后4行中选择版本号(即使它包含其他一些characers,例如:

some 1.2.3.4 some