Bash
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
)?我嘗試了一些
grep
,awk
但sed
我有點不合群……任何線索將不勝感激!
哎呀,我可能已經註意到最高值總是出現在最後一行:-)
所以:
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
太糟糕了,他沒有將其發佈為答案。