同様の質問がいくつかありますが、複数の行でパターンを検索したいときに効率的な解決策が見つかりませんでした。次のような
sed -n '/First string/,/Second string/ p' my.file
印刷するみんなパターンの発生数と一致しますが、最初の発生のみが必要です。私はGNU sedを使用しています。
答え1
q
シャットダウンモードに達すると、明示的にシャットダウンするために使用されます。
GNU sedから:
$ cat foo
foo
START
bar
END
blah
START another
$ sed -n '/START/,/END/p; /END/q' foo
START
bar
END
awk
多分結末パターンを繰り返さない方が簡単です。
$ awk '/START/{p=1} p; /END/{exit}' foo
START
bar
END
答え2
これがあなたが望む最初の発生であれば、おそらくawk
これがより適切になりますawk 'NR==1,/original/{sub(/original/, "replacement")} 1' file
。からインポートここ。