行が X 文字を超える場合、システムはログ ファイル内の行を折り返します。ログからさまざまなデータを抽出しようとしていますが、最初にすべての分割行を結合して、gawk がフィールドを単一のレコードとして解析できるようにする必要があります。
例えば:
2012/11/01 field1 field2 field3 field4 fi
eld5 field6 field7
2012/11/03 field1 field2 field3
2012/12/31 field1 field2 field3 field4 fi
eld5 field6 field7 field8 field9 field10
field11 field12 field13
2013/01/10 field1 field2 field3
2013/01/11 field1 field2 field3 field4
帰りたい
2012/11/01 field1 field2 field3 field4 field5 field6 field7
2012/11/03 field1 field2 field3
2012/12/31 field1 field2 field3 field4 field5 field6 field7 field8 field9 field10 field11 field12 field13
2013/01/10 field1 field2 field3
2013/01/11 field1 field2 field3 field4
私の場合、実際の最大行長は 130 ですgetline
。ちょうど 130 文字の長さのエントリがある場合に備えて、その長さをテストして次の行に結合するために使用するのは気が進まないです。
ログ ファイルをクリーンアップしたら、関連するすべてのイベントを抽出する必要もあります。「関連性」には、次のような基準が含まれる場合があります。
- 「foo」は、レコード内の任意のフィールドのどこにでもあります
- field2 ~ /bar|dtn/
- if field1 ~ /xyz|abc/ && field98 == "0001"
2 つの連続した gawk プログラムを実行する必要があるかどうか、またはこれらすべてを 1 つに結合できるかどうか疑問に思っています。
私は gawk の初心者で、Unix 以外の出身です