GNU/Linux >> Linux の 問題 >  >> Linux

Sed:パターンマッチの最初の出現のみを印刷しますか?

この質問にはすでに回答があります :それらを含む2つのパターンから最初の出現を選択する方法

(7つの回答)
4年前に閉鎖されました。

いくつかの質問はこれに似ていますが、複数行にわたるパターンを検索したいときに機能する解決策が見つかりませんでした。次の

sed -n '/First string/,/Second string/ p' my.file

すべてを印刷します 一致したパターンの出現ですが、最初の出現のみが必要です。 GNUsedを使用しています。

承認された回答:

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

Linux
  1. Sedを使用してパターンマッチ後に前の行を印刷しますか?

  2. 一致するまですべてのファイルを表示しますか?

  3. パターンに一致する連続する行のすべてのシーケンスの最初の行だけを保持しますか?

  1. Sedを使用して文字列の最初の文字をラップしますか?

  2. grep は指定された範囲内の行のみに一致します

  3. 一致しない場合の sed の戻りコード

  1. Rsyncフィルター:1つのパターンのみをコピーしますか?

  2. Sed、Awk、またはGrepを使用したマルチラインパターンマッチ?

  3. sed を使用して特定のパターンを置き換える