2012-06-25 4 views

답변

20

아마도이 하나입니까?

sudo cd/&& grep -rn "hello" * 

편집 : 'n'옵션은 물론 필요하지 않습니다. 간단히 줄 번호를 표시하고 멋지다고 생각합니다. 'r'옵션은 디렉토리 내에서 재귀 검색을 수행하도록 grep에 지시합니다.

+2

디렉터리에 많은 파일이있는 경우'*'보다 '.'를 사용하는 것이 더 좋습니다. (너무 많은 인수 오류가 발생할 수 있습니다.) – Evert

+0

@Evert는 결코 그 감사에 대해 생각하지 않았습니다. –

+0

@NBenatar는이 솔루션에 대해 생각했지만이 솔루션은 이해하기가 더 쉽다고 생각합니다. 내가 틀렸을 수도 있습니다. –

2

이것은?

find . -exec grep -H "hello" {} \; 
+0

"인수가 너무 많습니다"오류를 방지합니다. –

9

당신의 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 할 실패하고 조작 된 파일 이름은 보안 위험을 초래할 수 있다는 경고와 함께, 최대한 호환됩니다.

-igrep에 추가하지 않으면 모든 파일을 검색 할 수 있도록 검색해야하며 검색에서 대소 문자를 구분해야합니다.

+0

찾기/- 유형 f | xargs grep 'pattern'==> aix에서 작동합니다! – LeoPucciBr

관련 문제