경기 후와 다음 경기 전의 sed 라인

경기 후와 다음 경기 전의 sed 라인

일치하는 단어 뒤의 모든 줄을 다음 일치하는 단어까지 가져오는 방법은 무엇입니까?

예를 들어, 내 입력은 아래와 같습니다.

1
2
3

5
6

sed그리고 난 부터 해야 해1에게5내 출력에는 다음을 포함해야 합니다.1하지만 *5*및 나머지 줄은 포함하고 싶지 않습니다.

내 파일에 다음이 포함되어 있는 경우5, 끝까지 남은 줄을 남겨야 해요.

메모:내 질문과 중복된 것으로 보이는 참조 링크를 보았습니다. 제목은 다음과 같습니다.일치하는 2개의 패턴 사이에 텍스트만 표시하지만 내 질문에 대답하지 않습니다. 거기에 대한 답변에는 두 번째 일치 항목이 파일에 없는 경우 처리할 방법이 포함되어 있지 않습니다.

답변1

sed '/1/,/5/!d;/5/d'

해당 줄 을 포함하는 줄부터 시작하여 그 줄(그 줄은 포함하지 않음) 1이후의 다음 줄까지 반환합니다. 을 포함하는 줄 뒤에 5포함하는 줄이 없으면 포함하는 첫 번째 줄부터 파일 끝까지 인쇄합니다 .511

해당 섹션이 모두 인쇄됩니다.

섹션이 하나만 있거나 첫 번째 섹션에만 관심이 있는 경우 다른 접근 방식을 사용할 수 있습니다.

sed -n '/1/,$!d; /5/q; p'

sed, 같은 줄에서 5를 찾거나 가 포함된 첫 번째 줄 이후에 읽기를 중지한다는 의미입니다 1.

관련 정보