文字列を検索し(4320101を使用できます)、文字列の上に20行印刷し、文字列が見つかるまでこの後に印刷できるようにする必要があります
例えば:
Random text I do not want or blank line
16 Apr 2013 00:14:15
id="4320101"
</eventUpdate>
Random text I do not want or blank line
次の結果をファイルに出力したいだけです。
16 Apr 2013 00:14:15
id="4320101"
</eventUpdate>
必要なファイルには、これらのテキスト グループの例が複数あります。
私はこれを以下で使用してみました:
cat filename | grep "</eventUpdate>" -A 20 4320101 -B 100 > greptest.txt
ただし、文字列の両側に 20 行しか表示されません。
注: - テキストがある行番号に一貫性がないため、これらから抜け出す
ことができないため、-A 20 を使用している理由です。
その後、検索を続行します。
要約: 4320101 を検索し、4320101 より上の 20 行 (または 1 行の空白) を出力し、4320101 より下の行をすべて出力します。
</eventUpdate>
調査を行っていると、これを行うために awk、nawk、または sed を有利に機能させる方法がわかりません。