一方:sed -e '/pattern1/,/pattern2/!d' file.org
パターン1とパターン2の間に最初に表示される行を一致させ、残りを一致させない方法は何ですか?
たとえば、
pattern1
aaaa
pattern2
pattern1
bbb
pattern
以下を出力する必要があります。
aaa
代替ソリューション(使用grep
またはその他)を歓迎します。awk
答え1
$ cat input
a
b
c
a
b
c
$ sed -n '/a/,/c/p;/c/q' input
a
b
c
印刷したい範囲を検索し、最初の「終了」マークが表示されたら終了します。
awk
始点と終点を簡単に除外できます。
$ awk 'BEGIN { p=0 } /c/ { p=0; exit } p {print} /a/ { p=1 }' input
b