awk를 사용하여 텍스트 파일을 자르는 방법

awk를 사용하여 텍스트 파일을 자르는 방법

awk를 사용하여 원하는 웹사이트에서 찾은 긴 텍스트를 잘라내고 싶습니다. xxx로 시작하는 텍스트 부분부터 xxx로 끝나는 부분까지 txt를 파일로 저장하겠습니다.

답변1

귀하의 질문이 매우 모호하고 명확한 입력 예가 부족하더라도 AWK는 귀하가 지적한 일부 세부 사항을 기반으로 일반적인 솔루션을 개발하는 데 도움이 될 수 있습니다.

다음 코드는 텍스트에 최대 두 개의 xxx 인스턴스가 있고 텍스트에 줄 바꿈이 없는 경우에도 작동합니다. awk는 라인 지향 언어이므로 라인을 개별적으로 평가해야 합니다. sed와 같은 다른 방법은 정규식을 사용하여 작업을 수행하는 데 더 적합할 수 있습니다.

BEGIN{printer="false"}
printer=="true" && $0 !~ /xxx/ {print $0}
printer=="false" && $0 ~ /xxx/  {printer="true"; split($0,a,"xxx"); print a[2]; next}
printer=="true" && $0 ~ /xxx/ {split($0,b,"xxx"); print b[1]; printer="false"; exit}

테스트 하나:

xxxLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore
eu fugiat nulla pariatur.xxx Excepteur sint occaecat cupidatat non
proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.

테스트 b:

xxxLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.xxx Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

관련 정보