ls -1 | grep war | sort -V | tail -n1
次のwarファイル名をソートして一覧表示するコマンドがあります。abc-1.4.3.12.war。
ソートコマンドでVオプションの用途は何ですか?
答え1
https://www.gnu.org/software/coreutils/manual/html_node/sort-inspiration.html
'-V'
'--バージョンの並べ替え'バージョン名と番号でソートします。各10進数シーケンスがインデックス/バージョン番号で数値的に処理されることを除いて、標準のソートのように機能します。 (望むよりバージョンソートの詳細.)
例:
標準ソート:
$ printf '%s\n' abc-1.4.3.12.war abc-12.1.war abc-1.11.war | sort
abc-1.11.war
abc-12.1.war
abc-1.4.3.12.war
バージョン別に並べ替え:
$ printf '%s\n' abc-1.4.3.12.war abc-12.1.war abc-1.11.war | sort -V
abc-1.4.3.12.war
abc-1.11.war
abc-12.1.war
ただし、ここではおよびを使用せずに-v
オプションを使用することもできます。ls
grep
sort
:
$ touch abc-1.4.3.12.war abc-12.1.war abc-1.11.war
$ ls -1 *war
abc-1.11.war
abc-12.1.war
abc-1.4.3.12.war
$ ls -1v *war
abc-1.4.3.12.war
abc-1.11.war
abc-12.1.war
答え2
男の種類が言う
-V, --version-sort natural sort of (version) numbers within text
https://stackoverflow.com/questions/4493205/unix-sort-of-version-numbers