find에서 grep 상태 코드를 랜치하는 방법

find에서 grep 상태 코드를 랜치하는 방법

찾기에서 실행된 grep 명령의 종료 코드를 얻는 것이 어떻게 가능합니까?

예:

find ./export-`date +%Y%m%d`-*/instance.log -type f -exec grep -i -m1 error {} \;

파일에 "error"라는 단어가 있는지 여부에 관계없이 종료 코드를 반환합니다.0

instance.log의 내용은 다음과 같습니다.

2016-09-30 09:01:20 : 오류2 (16)

답변1

-exec 옵션과 함께 사용된 find 명령은 grep 명령의 상태 코드를 반환합니다. 예:

find . -type f  -exec grep 201 {} +

"201" 패턴이 포함된 일부 로그 파일이 있는 폴더에서 실행하면 0이 반환됩니다. echo $? 로 확인할 수 있습니다. 콘솔에서 (패턴이 발견되면 0을 제공합니다)

"201"이 포함되지 않은 파일이 있는 다른 폴더에서 동일한 명령을 실행하면 find 명령의 상태 코드는 1이 됩니다.

관련 정보