bash:如何确定最大数字(最新版本): ls *.tar.gz |切-c 2-4

bash:如何确定最大数字(最新版本): ls *.tar.gz |切-c 2-4

您好,我正在尝试获取文件的最大编号(最新版本),

我在一个目录中有一堆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)?

我尝试了一些grepawksed我有点超出我的能力...任何线索将不胜感激!

答案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可惜他没有将其作为答案发布。

相关内容