awk를 사용하여 문자열을 여러 단어로 그룹화하는 방법은 무엇입니까? (2개의 패턴 사이에 선을 인쇄합니다)

awk를 사용하여 문자열을 여러 단어로 그룹화하는 방법은 무엇입니까? (2개의 패턴 사이에 선을 인쇄합니다)

문제가 있습니다. 내 문자열은 단일 문자열이 아닙니다. sed를 사용하면 잘 작동하지만 awk는 아닙니다.

awk를 사용하여 모든 문자열을 그룹화하는 방법은 무엇입니까? " ", with 및 with 으로 { }문자열을 캡슐화하려고 시도했지만 ( )아무것도 작동하지 않았습니다. 다음은 sed 및 awk의 예입니다.

sed -n '/show system | inc Software/,/sh syst | i @@@@@/p' filename.txt > out_file.txt

이 줄은 sed와 완벽하게 작동합니다 "show system | inc Software"."sh syst | inc @@@@@"

awk의 경우 작동하지 않습니다.

awk '/show system | inc Software/,/sh syst | i @@@@@/' filename.txt > out_file.txt

출력 파일이 예상한 것과 다릅니다. 이 문자열이 이 명령에서 작동하도록 하려면 어떻게 해야 합니까?

답변1

입력 데이터와 예상 출력 데이터를 포함하면 질문을 더 쉽게 이해할 수 있습니다.

다음 awk명령은 'show system | inc Software' 및 'sh syst i @@@@@' 줄과 그 사이의 모든 줄을 인쇄합니다.

awk '/show system \| inc Software/,/sh syst \| i @@@@@/{n=0}' filename.txt > out_file.txt

편집하다:

또한 귀하의 명령이 작동하지 않는 것 같습니다 sed. (귀하의 질문을 이해했다고 가정) 다음과 같아야 합니다.

sed -n '/show system | inc Software/,/sh syst | i @@@@@/p' filename.txt > out_file.txt

관련 정보