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

それらを含む2つのパターン間の最初の発生を選択する方法は?

それらを含む2つのパターンから最初の出現を選択するにはどうすればよいですか。できればsedを使用してください またはawk

私が持っている:

text
something P1 something
content1
content2
something P2 something
text
something P1 something
content3
content4
something P2 something
text

P1とP2の間の線(P1線とP2線を含む)を最初に出現させたい:

something P1 something
content1
content2
something P2 something

承認された回答:

sed '/P1/,/P2/!d;/P2/q'

dによって移植可能に仕事をします !を実行するすべての行を削除します 範囲内にない場合は、q 範囲の終わりに最初に遭遇したときに使用します。 P1より前のP2では失敗せず、単純に記述するためにGNU固有の構文は必要ありません。


Linux
  1. 2つのタイムスタンプ間のログを抽出する方法は?

  2. 2つのリモート間でファイルをRsyncする方法は?

  3. bashで2つの日付の違いを取得するにはどうすればよいですか

  1. 2 つのファイルの最初の行だけを比較するには?

  2. 2 つのインターフェース間のすべてのトラフィックをブロックする方法は?

  3. 2 つの文字を含み、そのうちの 1 つが c であるファイル名を表示するにはどうすればよいですか?

  1. 2つのパターン間の(および除外する)行を印刷しますか?

  2. 2つのパターンの間(およびそれを含む)の線を印刷しますか?

  3. 同じ行の2つの検索パターン間で値を抽出しますか?