sed を使用して、指定した範囲内で選択した行を印刷します。

sed を使用して、指定した範囲内で選択した行を印刷します。

簡略化された文書の検討

AAA
BBB
CCC1
DDD
EEE
CCC2
DDD
FFF
GGG
CCC3
HHH

EEE範囲を選択できます。FFF

sed -n '/EEE/,/FFF/p'

C以下を含むが一致する範囲内にのみある行を印刷したいとします。sed結果をパイプに送信できます。grep

sed -n '/EEE/,/FFF/p' | grep 'C'

awk小さなスクリプトで範囲と一致(perlまたはなど)を実行することもできますpython。しかし、1回の呼び出しでこれを行うにはどうすればよいですかsed

答え1

sedがCを表示したときにのみ印刷するように指示するブロックを使用してください。

sed -n '/EEE/,/FFF/{/C/p}'

答え2

あなたは試すことができます:

sed '/EEE/,/FFF/!d;/C/!d'

関連情報