[file] 주어진 문자열 패턴을 포함하지 않는 파일은 어떻게 찾습니까?

현재 디렉토리 에서 단어를 포함 하지 않는 파일 을 어떻게 찾 습니까 (사용 )?foogrep



답변

grep에 -L(또는 --files-without-match) 옵션이있는 경우 :

$ grep -L "foo" *


답변

살펴보십시오 ack. .svn자동으로 제외를 수행하고 Perl 정규 표현식을 제공하며 단일 Perl 프로그램의 간단한 다운로드입니다.

찾고있는 것과 동등한 것은 다음과 같습니다 ack.

ack -L foo


답변

grep만으로도 찾을 수 있습니다.

grep -riL "foo" .

이것은 사용 된 매개 변수에 대한 설명입니다 grep

     -L, --files-without-match
             each file processed.
     -R, -r, --recursive
             Recursively search subdirectories listed.

     -i, --ignore-case
             Perform case insensitive matching.

l(소문자) 를 사용 하면 반대 (파일이 일치하는 파일)가 표시됩니다

     -l, --files-with-matches
             Only the names of files containing selected lines are written


답변

다음 명령은 패턴을 포함하지 않는 모든 파일을 제공합니다 foo.

find .  -not  -ipath '.*svn*' -exec  grep  -H -E -o -c  "foo"  {} \; | grep 0


답변

다음 명령은 찾기를 svn사용하여 폴더 를 필터링하지 않아도됩니다 grep.

grep -rL "foo" ./* | grep -v "\.svn"


답변

실제로 다음이 필요합니다.

find .  -not  -ipath '.*svn*' -exec  grep  -H -E -o -c  "foo"  {} \; | grep :0\$


답변

나는 행운을 빕니다

grep -H -E -o -c "foo" */*/*.ext | grep ext:0

내 시도는 grep -v그냥 “foo”없이 모든 줄을 주었다.