📝

Apache のアクセスログをマージする

2022/03/28に公開

複数のログファイルを1つにマージする

日付が4番目の要素の場合のログファイルを、日付順にソートしてマージします

$ sort -nmbsk4 log1.log log2.log > marge.log

それぞれオプションの詳細は以下の通り。

オプション 説明
-n 数値順に評価する。行先頭の文字列 (空白が前置されていても良い) を数値文字列として比較する。 数値文字列は、先頭の - 符号 (なくても良い)、 0 桁以上の数字、 そして小数点と 0 桁以上の数字 (なくても良い) からなる。
-m 与えられたファイル群をまとめてソートしてマージする。 入力ファイルは事前にそれぞれソートされていなければならない。 マージ動作ではなく、ソート動作を複数ファイルにまとめて行うこともできる。 マージ動作が提供されているのは、 (これでよい場合は) こちらの方が高速だからである。
-b 各行の比較の際に、行頭の空白を無視する。
-s 最終手段比較を無効にし、 全てのフィールドの比較結果が同じだった行の順序を、入力の順序のままにする。
-k -K POS1[,POS2] ソートフィールド指定の POSIX 形式。今後はこちらが推奨される。行の POS1 から POS2 までのフィールドを指定する。 POS2 を含む。 POS2 が省略されたら行末まで。 フィールドと文字位置はそれぞれ 0 から数えはじめる。

https://linuxjm.osdn.jp/html/gnumaniak/man1/sort.1.html より引用。

Discussion