텍스트 파일에서 Unix에서 sed를 사용하여 특정 텍스트 모드로 묶인 텍스트의 여러 부분을 분리하는 방법은 무엇입니까?

텍스트 파일에서 Unix에서 sed를 사용하여 특정 텍스트 모드로 묶인 텍스트의 여러 부분을 분리하는 방법은 무엇입니까?

나는 sed -n START_LINE,FINISH_LINEp filename > newfile 텍스트 파일에서 특정 범위의 텍스트를 추출하는 데 사용합니다 sed -n 45,50p datafile > newfile.

항상 동일한 텍스트 모드로 둘러싸인 여러 텍스트 섹션을 추출하려면 어떻게 해야 합니까? 예를 들어, 추출하려는 텍스트는 항상 39행에서 시작하여 Subject:?????바로 앞에서 끝납니다 Start Date: ??/??/??.

답변1

이것 자체로는 귀하의 질문에 대답할 수 없지만, awk우아한 해결책이 있습니다.

$ awk '

    # Set start variable
    /Subject/ { start=NR + 39; }

    # Disable print condition below
    /Start Date/ { start=""; next; }

    # Print while line is greater than start
    NR > start && start

' someFile.txt

관련 정보