sed에서 "첫 번째 패턴 발생 이후의 줄에서만 인쇄"를 어떻게 표현합니까?

sed에서 "첫 번째 패턴 발생 이후의 줄에서만 인쇄"를 어떻게 표현합니까?

입력이 있을 때:

-------------------------------------------------------------------
Sat Jul  1 09:28:03 UTC 2023 - Matej Cepl <[email protected]>

- Clean up SPEC file.

-------------------------------------------------------------------
Mon Jul  4 18:11:38 UTC 2022 - Matej Cepl <[email protected]>

- Do not unset various variables when calling make (only CFLAGS
  should be set).

나는 다음과 같은 출력을 받고 싶습니다.

- Clean up SPEC file.

-------------------------------------------------------------------
Mon Jul  4 18:11:38 UTC 2022 - Matej Cepl <[email protected]>

- Do not unset various variables when calling make (only CFLAGS
  should be set).

답변1

논리를 반대로 바꿔서 행 1을 삭제하세요. 1 - 패턴 일치(포함)

sed '1,/PATTERN/d' infile

답변2

sed '0,/pattern/d' inputfile.txt

  • 0,/pattern/파일 처음부터 일치 시작
  • pattern/d일치하는 행과 그 앞의 모든 후속 행을 삭제합니다.

sed '0,/Sat/d' inputfile.txt

출력을 새 파일로 리디렉션합니다.

sed '0,/Sat/d' input.txt > outputfile.txt

관련 정보