GNU/Linux >> Linux の 問題 >  >> Linux

フィールドの数値に基づいてファイルをソートする方法は?

並べ替えのマニュアル ページを見てみましょう...

   -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

Linux
  1. 日付範囲に基づいてログファイルエントリをフィルタリングする方法

  2. 出力をファイルに追加する方法は?

  3. system() の出力をファイルにリダイレクトする方法は?

  1. nethogs の出力をログ ファイルにキャプチャする

  2. ファイルをその場でソートする方法

  3. プログラムの出力を入力としてリダイレクトする方法

  1. Linuxコマンド出力をファイルに出力するには?

  2. 出力をリダイレクトするときに特定のファイル許可を設定する方法は?

  3. この出力をソートする方法 1,10,11..2