Programing

grep이 'No such file or directory'오류를 출력하지 않게하려면 어떻게해야합니까?

lottogame 2020. 5. 9. 09:04
반응형

grep이 'No such file or directory'오류를 출력하지 않게하려면 어떻게해야합니까?


나는 git이 관리하는 많은 코드를 통해 grepping하고 있으며 grep을 수행 할 때마다 다음과 같은 형식의 메시지 더미를 볼 수 있습니다.

> grep pattern * -R -n
whatever/.git/svn: No such file or directory

그 라인을 없앨 수있는 방법이 있습니까?


-s또는 --no-messages플래그를 사용하여 오류를 억제 할 수 있습니다 .

-s, --no-messages는 오류 메시지를 표시하지 않습니다

grep pattern * -s -R -n

git 저장소를 통해 grepping하는 경우을 사용하는 것이 좋습니다 git grep. 당신은 -R경로 를 전달할 필요가 없습니다 .

git grep pattern

현재 디렉토리의 모든 일치 항목이 아래로 표시됩니다.


이와 같은 오류는 일반적으로 "표준 오류"스트림으로 전송되며 파일로 파이프하거나 대부분의 명령에서 사라질 수 있습니다.

grep pattern * -R -n 2>/dev/null

링크가 끊어지면 (존재하지 않는 파일을 가리키는 심볼릭 링크) 여러 번 발생하는 grep은 존재하지 않는 대상 파일을 검색하려고 시도합니다 (따라서 정확하고 정확한 오류 메시지).

일반적으로 콘솔을 통해 sysadmin 작업을 수행하는 동안 귀찮게하지 않지만 스크립트 내에서 "find"가있는 텍스트 파일을 찾은 다음 각 항목을 grep합니다.

find /etc -type f -exec grep -nHi -e "widehat" {} \;

대신에:

grep -nRHi -e "widehat" /etc

나는 일반적으로 grep이 재귀 자체를 수행하지 못하게합니다. 일반적으로 건너 뛸 디렉토리가 몇 개 있습니다 (.git, .svn ...).

다음과 같은 자세로 영리한 별칭을 수행 할 수 있습니다.

find . \( -name .svn -o -name .git \) -prune -o -type f -exec grep -Hn pattern {} \;

언뜻보기에는 과도하게 보일 수 있지만 일부 패턴을 필터링해야 할 때 매우 편리합니다.


xargs 에서 -0옵션 을 사용해 보셨습니까 ? 이 같은:

ls -r1 | xargs -0 grep 'some text'

-Igrep에서 사용하십시오 .

예 : grep SEARCH_ME -Irs ~/logs.

참고 URL : https://stackoverflow.com/questions/6426363/how-can-i-have-grep-not-print-out-no-such-file-or-directory-errors

반응형