패턴 사이의 줄을 별도의 파일로 리디렉션

패턴 사이의 줄을 별도의 파일로 리디렉션

입력 파일에서 두 개의 반복 패턴 사이의 줄을 분리하고 선택한 각 줄을 별도의 파일로 리디렉션해야 합니다.

입력 파일 형식 예:
Pattern 1
Line1
Line2
Line3
Pattern 2
Pattern 1
Line4
Line5
Pattern 2

출력 파일:
파일 1:
Pattern 1
Line1
Line2
Line3
Pattern 2

파일 2:
Pattern 1
Line4
Line5
Pattern 2

쉘 스크립트의 일부로 이 작업을 어떻게 수행할 수 있습니까? 다음과 같은 awk 명령 구현이 있지만 전체 출력만 파일로 리디렉션합니다.
awk '/Pattern\ 1/,/Pattern\ 2/{print > "filename_$var.txt";var=var+1}var' $filename

답변1

다음을 시도해 볼 수 있습니다.

awk '{if ($0 ~ /Pattern 1/) a++} {print >> "file"a}' file

첫 번째 awk는 첫 번째 열이 원하는 패턴으로 시작하는지 확인하는 것입니다.

그렇다면 도입되지 않은 변수가 a증가합니다 a=1.

두 번째 awk는 다음을 모두 추가합니다.모드 1도착하다모드 2문자열을 합성하다file파일로.

이게 도움이 되길 바란다.

관련 정보