時間範囲でログファイルを分割する

時間範囲でログファイルを分割する

ログファイルがありますが、これを15分のコピーに切りたいと思います。ログファイルでは、行は次から始まります。

dd mmm yyyy hh:mm:ss,xxx 

例えば

12 Feb 2013 16:05:02,xxx log text...

ファイルは1時間ごとに循環するので、ログファイルのコピーをインポートして15分分のロギングに分割して4つのログファイルを持ちたいと思います。

ベストアンサー1

すべての行の形式が正しい場合

awk -F: '{print >int($2/15)*15 ".log"}' inputfile

0.log、15.log、30.log、および45.logファイルが生成されます。

コロンを区切り文字として分割する方法で動作するため、2番目のフィールドdd mm yyyy hh:mm:ss,xxxはですmm。これを15で除して整数部分を取り、15を掛けてmm15時間ごとに始まる値を取得します。次に文字列を追加します".log"。次に、awkに現在の行をファイルに印刷するように指示します。

おすすめ記事