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. 하지만 단 한 번의 호출만으로 이 작업을 수행하려면 어떻게 해야 합니까 sed?

답변1

sed가 C를 볼 때만 인쇄하도록 지시하는 블록을 사용하세요.

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

답변2

당신은 시도 할 수 있습니다:

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

관련 정보