aaa aaaa aaaa aaaa
sss ssss ssss ssss
ddd dddd dddd dddd
fff ffff ffff ffff
abc pattern asd fde
111 222 333 444 555
666 777 888 999 000
望ましい出力:
111 222 333 444 555
666 777 888 999 000
aaa aaaa aaaa aaaa
sss ssss ssss ssss
ddd dddd dddd dddd
fff ffff ffff ffff
abc pattern asd fde
111 222 333 444 555
666 777 888 999 000
望ましい出力:
111 222 333 444 555
666 777 888 999 000
パターンが見つかるたびにフラグを設定するだけです。その瞬間から、次の行を出力します。
$ awk 'p; /pattern/ {p=1}' file
111 222 333 444 555
666 777 888 999 000
またはまた
awk '/pattern/ {p=1;next}p' file
pattern
行ごとに探します。見つかった場合、変数p
は 1 に設定されます。トリッキーな点はp>0
、次の行が印刷されるように、行が の場合だけ印刷されることです。
これは、2 つのパターン間の行を選択する方法の特定のケースです。そのような 2 番目のパターンがない場合。
別の1つのsed
解決策:
sed ':loop;/pattern/{d};N;b loop' file.txt