パターンが発生した場合(以下の例では「イベント100」)、ファイルから特定の行を抽出しようとします.htm
。同時に、最初のパターンに関連していますが、次から来る他のパターンも検索する必要があります。上記の行の1つです。第2のパターンは、第1のパターンが発生する時間を示す。
例:
<AZ>207994</AZ>
<AZ>09:10:41.9</AZ>
<AZ>02/04</AZ>
<AZ>[990875]</AZ>
<TR VALIGN=TOP>
<AZ>207995</AZ>
<AZ>09:10:56.4</AZ>
<AZ>02/04</AZ>
<AZ>[990876]</AZ>
<AZ>30718</AZ><AZ><!--void--></AZ><AZ><!--void--></AZ><AZ><!--void--></AZ>
<AZ>TN (speed) Event 3 occurred</TD></TR>
<TR VALIGN=TOP>
<AZ>30719</TD><TD><!--void--></AZ><AZ><!--void--></AZ><AZ><!--void--></AZ>
<AZ>TN (speed) Event 100 occurred</TD></TR>
<TR VALIGN=TOP>
<AZ>30720</AZ><AZ><!--void--></AZ><AZ><!--void--></AZ><AZ><!--void--></AZ>
私は次の結果が欲しい:
02/04 09:10:56.4 [990876] イベント100発生
ベストアンサー1
私は次のような迷惑な一行を思い出しました。 (読みやすくするために1行に改行しました。)
awk -F'[<>]' '($0 ~ /[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/) {time=$3}
($0 ~ /[0-9][0-9]\/[0-9][0-9]/) {date=$3}
($0 ~ /\[[0-9]+\]/) {tag=$3}
($0 ~ /Event 100 occurred/) { print date, time, tag, "Event 100 occurred"}' < testfile
これにより、時刻、日付、ラベル([12345])などが一貫して収集され、「イベント 100 発生」などの行が表示されると、変数の現在の内容が印刷されます。これが欲しい出力ですか?