ファイル1:
pattern1
a
b
c
end
コマンド=>
cat file1 | sed -n '/pattern1/,/pattern2/p'
出力 =>
pattern1
a
b
c
end
2番目のパターンが一致しない場合、どのように出力を印刷できませんか?
希望の出力:
pattern1
答え1
終了 "パターン"(ひどい単語btw - 参照)が表示されるまでテキストをバッファリングする必要があります。パターンに一致するテキストを見つける方法)、たとえば、次のawkコマンドを参照してください。
$ cat file1
pattern1
a
b
c
end
$ sed -n '/pattern1/,/pattern2/p' file1
pattern1
a
b
c
end
$ awk '/pattern1/{f=1; print; buf=""; next} f{buf=buf $0 ORS; if (/pattern2/) {printf "%s", buf; f=0} }' file1
pattern1
$ awk '/pattern1/{f=1; print; buf=""; next} f{buf=buf $0 ORS; if (/end/) {printf "%s", buf; f=0} }' file1
pattern1
a
b
c
end