파일에서 특정 키워드 제외

파일에서 특정 키워드 제외

파일에서 제외해야 하는 키워드를 grep하는 쉘 스크립트를 작성하려고 하는데, 제외된 키워드에서 다른 항목을 찾으면 특정 명령을 실행해야 합니다.

logcheck=`grep -vq 'accepting\|idle.' /tmp/lpstat-Final.log`

    if [[ $logcheck == 'accepting\|idle.' ]] ; then
        status=0
        statustxt=OK
    else
    echo "Something found"
    fi

"accept\|idle" 외에도 결과는 "있는 경우"여야 합니다. else 문으로 이동해야 한다는 것을 알았습니다. 그렇지 않으면 현재 상태가 0이 됩니다.

답변1

if ! grep -Evq 'accepting|idle' /tmp/lpstat-Final.log; then
    status=0
    statustxt=OK
else
    echo 'Something found'
fi

여기서 가장 중요한 것은 grep. -q이는 명령 대체를 사용하여 아무 것도 캡처하지 않음을 의미합니다( $logcheck코드에서는 비어 있음). 대신 유틸리티의 종료 상태를 사용하여 무언가가 발견되었는지 확인합니다.

여기서는 정규식을 더 예쁘게 만들기 위해 사용하고 있습니다 -E. 교체에도 필요합니다( \|기본 정규식의 교체는 GNU 등에서 지원되는 확장입니다 grep).

관련 정보