並べ替えのマニュアル ページを見てみましょう...
-n, --numeric-sort compare according to string numerical value
ここに例があります...
sort -n filename
ローリング ログのファイル名など、テキストと数字が混在する文字列を並べ替える場合は、sort -n
で並べ替えます。 期待どおりに動作しません:
$ ls |sort -n
output.log.1
output.log.10
output.log.11
output.log.12
output.log.13
output.log.14
output.log.15
output.log.16
output.log.17
output.log.18
output.log.19
output.log.2
output.log.20
output.log.3
output.log.4
output.log.5
output.log.6
output.log.7
output.log.8
output.log.9
その場合、オプション -V
トリックを行います:
$ ls |sort -V
output.log.1
output.log.2
output.log.3
output.log.4
output.log.5
output.log.6
output.log.7
output.log.8
output.log.9
output.log.10
output.log.11
output.log.12
output.log.13
output.log.14
output.log.15
output.log.16
output.log.17
output.log.18
output.log.19
output.log.20
マニュアルページから:
-V, --version-sort natural sort of (version) numbers within text