awk를 사용하여 파일에서 일치하는 패턴(변수에 저장됨)을 검색하는 방법은 무엇입니까?

awk를 사용하여 파일에서 일치하는 패턴(변수에 저장됨)을 검색하는 방법은 무엇입니까?

로그 파일이 있는데 그 파일에 오류 메시지가 있는지 확인하고, 그렇다면 오류 메시지를 다른 파일로 추출해야 합니다.

이처럼 오류 파일이 있을 수 있으며, 파일마다 로그 모드가 다릅니다. 그렇다면 일치하는 패턴을 검색하기 위해 변수를 어떻게 사용합니까?

.sh모든 로그 파일에 대한 공통 파일을 만들고 싶기 때문입니다 . 패턴을 검색하고 다른 파일에 인쇄하려는 파일이 있다고 가정해 보겠습니다 $pat1="ERROR MESSAGE" $pat2="RAISE_ERROR_SEEN". 두 모드 모두에서 파일의 모든 줄을 흑백으로 원합니다.

변수만 사용하세요.

답변1

이 시도,

 awk "/""$pat1""/,/""$pat2""/" test.log | grep -v "$pat3" > Error.bk
  • $pat1사이의 컨텍스트를 인쇄합니다$pat2
  • 첫 번째 변수에 공백이 있으므로 큰따옴표를 두 번 사용합니다.

답변2

더 간단한 방법으로:

grep -e "$pat1\|$pat2" filename > resultfile

관련 정보