特殊単語を含む最初の行を印刷する方法

特殊単語を含む最初の行を印刷する方法

XXXの下の最初の123を印刷してください。

AAA
BCB
DDD
123
123
XXX
CCC
123
123
MSM
123

ベストアンサー1

awk 'NR == 1, /XXX/ {next}; /123/ {print; exit}' < input.txt

すべての行は最初の埋め込み行までスキップされ、残りの行のXXXうち最初の埋め込み行が印刷されます。123

変数に格納された文字列の場合:

START='XXX' NEEDLE='fancy string with " and *' awk '
  NR == 1, index($0, ENVIRON["START"]) {next}
  index($0, ENVIRON["NEEDLE"]) {print; exit}' < input.txt

おすすめ記事