bash:最大数を決定する方法(最新バージョン):ls *.tar.gz cut -c 2-4

bash:最大数を決定する方法(最新バージョン):ls *.tar.gz cut -c 2-4

こんにちは。ファイルの最大数(最新バージョン)を取得しようとしています。

ディレクトリには複数のファイルがあり、tar.gz一部のソフトウェアのバージョン形式はですv${version_number}_software.tar.gz。ここで${version_number}、は3桁の数字です。

実行すると、ls *.tar.gz | cut -c 2-4次の結果が表示されます。

100
102
684
696
705

最も高い値(この場合705)を取得するには、次に何を実行する必要がありますか(またはlsまたはcut構文で何を変更する必要があります)?

いくつか試してみましたが、私の能力grepではawk少しsed不足しています。どんな手がかりもいただければ幸いです!

答え1

マブソサ、最も高い値が常に最後の行に現れることがわかったかもしれません。 :-)

だから:

ls -d -- *.tar.gz | cut -c 2-4 | tail -n 1

これは。この質問は将来の世代に残してください

編集:しかし、Lambertが以下で提案したように、

ls -d -- *.tar.gz | cut -c 2-4 |sort -n|tail -n 1

出力が数値でソートされるようにするのが最善です(そうでない場合は、ソート順が大文字lsと小文字を区別するロケールからV999.tar.gz出力が最初に表示されることがあります)。v100.tar.gz残念ながら、彼は答えとして投稿しませんでした。

関連情報