게임 후 및 다음 게임 전에 sed 라인

게임 후 및 다음 게임 전에 sed 라인

일치하는 단어 뒤의 다음 일치하는 단어까지 모든 줄을 어떻게 얻을 수 있습니까?

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

1
2
3

5
6

sed나는 부터 시작 해야한다1도착하다5내 출력에는 다음을 포함해야 합니다.1하지만 *5*와 나머지 행은 포함하고 싶지 않습니다.

내 파일에 포함되지 않은 경우5, 남은 행을 끝까지 유지해야 합니다.

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

답변1

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

해당 행을 제외하고 포함 행에서 시작하여 1해당 행을 포함하는 다음 행으로 끝나는 행을 반환합니다 5. 5포함된 행 뒤에 포함된 행이 없는 경우 1포함된 첫 번째 행부터 1파일 끝까지 인쇄가 시작됩니다.

해당하는 모든 섹션이 인쇄됩니다.

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

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

이는 sed같은 줄에서 5가 발견되거나 포함된 첫 번째 줄 다음에 읽기가 중지됨 을 의미합니다 1.

관련 정보