로그 파일이 있는데 그 파일에 오류 메시지가 있는지 확인하고, 그렇다면 오류 메시지를 다른 파일로 추출해야 합니다.
이처럼 오류 파일이 있을 수 있으며, 파일마다 로그 모드가 다릅니다. 그렇다면 일치하는 패턴을 검색하기 위해 변수를 어떻게 사용합니까?
.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