각 행의 패턴이 일치하면 연속 행을 삭제합니다.

각 행의 패턴이 일치하면 연속 행을 삭제합니다.

안녕히 가세요

이 패턴이 발견되면 연속된 행을 제거하는 방법을 알고 싶습니다./^pt [a-z]\npy [0-9][0-9][0-9][0-9]\n//

예상 입력

pt a
py 01234
pt b
cd abc
py 5678

예상 출력

pt b
cd abc
py 5678

어떤 단서라도 미리 감사드립니다.

답변1

이것은 작동합니다:

sed '/^pt [a-z]/{N;/py [0-9][0-9][0-9][0-9]/d}' your_file

확장하다

  • 현재 줄이 일치하면 /^pt [a-z]/중괄호 사이의 내용을 실행합니다.
  • N활성 버퍼에 다음 줄을 추가합니다.
  • 이제 활성 버퍼가 일치하면 /py [0-9][0-9][0-9][0-9]/활성 버퍼의 내용을 삭제(즉, 인쇄하지 않음)합니다. 이는 를 통해 달성됩니다 d.

답변2

펄을 통해,

$ perl -00pe 's/^pt [a-z]\npy [0-9]{5}\n//' file
pt b
cd abc
py 5678

관련 정보