-L
는 일치하지 않는 파일의 내용을 검색하고 -l
는 일치하는 파일의 내용을 검색합니다.
따라서 두 번째 “grepping”에 -l
플래그를 지정해야합니다.
또한 첫 번째 grep
의 출력을 명령 줄 인수로 두 번째 출력으로 지정해야합니다. 이는 표준 입력에서 항목을 읽는 도구 인 xargs
를 사용하여 수행 할 수 있습니다. 파일 이름을 직접 파이핑하면 두 번째 grep이 names 파일에서 authenticate
문자열을 찾게됩니다.
grep -r --color -L "class public interface" * | xargs grep -l "authenticate"`
기본적으로 xargs
는 입력을 공백으로 분할하므로 파일 이름이있는 경우 공백 (또는 더 나쁜 경우)이있는 경우 “grep -Z
및 xargs -0
를 사용하여 파일 이름을 NUL 바이트로 구분해야합니다. ( 즉, GNU grep에서는 다른 것들이 다를 수 있습니다. 예를 들어 FreeBSD grep에는 대신 --null
가 있습니다.)
코멘트