Bash

bash:如何確定最大數字(最新版本)來自:ls *.tar.gz |剪切-c 2-4

  • December 22, 2015

嗨,我正在嘗試獲取文件的最大數量(最新版本),

我在一個目錄中有一堆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我有點不合群……任何線索將不勝感激!

哎呀,我可能已經註意到最高值總是出現在最後一行:-)

所以:

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太糟糕了,他沒有將其發佈為答案。

引用自:https://unix.stackexchange.com/questions/246611