您好,我正在尝试获取文件的最大编号(最新版本),
我在一个目录中有一堆tar.gz
文件,一些软件的版本格式为v${version_number}_software.tar.gz
,其中${version_number}
是一个三位数。
运行ls *.tar.gz | cut -c 2-4
给我这个输出:
100
102
684
696
705
接下来我要运行什么(或者我应该在 ls 或 cut 语法中更改什么)以获得最高值(在本例中为705
)?
我尝试了一些grep
,awk
但sed
我有点超出我的能力...任何线索将不胜感激!
答案1
天啊,我可能已经注意到最高的值总是出现在最后一行:-)
所以:
ls -d -- *.tar.gz | cut -c 2-4 | tail -n 1
这是。留下这个问题,留给后代
编辑:但正如兰伯特在下面建议的那样,
ls -d -- *.tar.gz | cut -c 2-4 |sort -n|tail -n 1
最好确保 的输出ls
按数字排序(否则在排序顺序区分大小写的语言环境中V999.tar.gz
可能排在前面)。v100.tar.gz
可惜他没有将其作为答案发布。