"hello"문자열에 대해 모든 파일 내에서 UNIX를 검색하도록하려면 어떻게합니까?모든 파일에서 텍스트 문자열을 검색하는 Unix 명령
는 내가이 있지만 작동하지 않습니다 다음 시도했다 :
sudo grep "hello" | find/-name "*" 2>/dev/null
사람이 다른 아이디어가 있습니까?
감사합니다.
"hello"문자열에 대해 모든 파일 내에서 UNIX를 검색하도록하려면 어떻게합니까?모든 파일에서 텍스트 문자열을 검색하는 Unix 명령
는 내가이 있지만 작동하지 않습니다 다음 시도했다 :
sudo grep "hello" | find/-name "*" 2>/dev/null
사람이 다른 아이디어가 있습니까?
감사합니다.
아마도이 하나입니까?
sudo cd/&& grep -rn "hello" *
편집 : 'n'옵션은 물론 필요하지 않습니다. 간단히 줄 번호를 표시하고 멋지다고 생각합니다. 'r'옵션은 디렉토리 내에서 재귀 검색을 수행하도록 grep에 지시합니다.
이것은?
find . -exec grep -H "hello" {} \;
"인수가 너무 많습니다"오류를 방지합니다. –
당신의 grep
이 -r
을 지원하는 경우
grep -r 'pattern'/
사용, (GNU grep
는 않습니다) 당신의 find
가 -printf
를 지원하며 사용자 find
지원하는 경우 xargs
이 -0
, 또는
find/-type f -print0 | xargs -0 grep 'pattern'
을 지원하는 경우하지 않으면 것은
find/-type f -exec grep 'pattern' {} +
당신의 find
이 +
와 -exec
를 지원하는 경우, 그렇지 않으면
find/-type f -printf '%p\0' | xargs -0 grep 'pattern'
을 사용하여 사용 오직 -print0
이고 xargs
은 -0
을 지원합니다. 다른 모든 경우가
find/-type f | xargs grep 'pattern'
에 다시 가을이 특정 이상한 파일 이름 grepped 할 실패하고 조작 된 파일 이름은 보안 위험을 초래할 수 있다는 경고와 함께, 최대한 호환됩니다.
-i
을 grep
에 추가하지 않으면 모든 파일을 검색 할 수 있도록 검색해야하며 검색에서 대소 문자를 구분해야합니다.
찾기/- 유형 f | xargs grep 'pattern'==> aix에서 작동합니다! – LeoPucciBr
디렉터리에 많은 파일이있는 경우'*'보다 '.'를 사용하는 것이 더 좋습니다. (너무 많은 인수 오류가 발생할 수 있습니다.) – Evert
@Evert는 결코 그 감사에 대해 생각하지 않았습니다. –
@NBenatar는이 솔루션에 대해 생각했지만이 솔루션은 이해하기가 더 쉽다고 생각합니다. 내가 틀렸을 수도 있습니다. –