일치하는 줄만 어떻게 그 리핑하고 반환합니까? 즉, 경로 / 파일 이름이 결과에서 생략됩니다.
이 경우 현재 디렉토리의 모든 .bar 파일에서 FOO라는 용어를 검색하고 싶습니다.
find . -name '*.bar' -exec grep -Hn FOO {} \;
답변
필요가 없습니다 find
. 특정 디렉토리 내에서 패턴을 찾고 있다면 이것으로 충분합니다.
grep -hn FOO /your/path/*.bar
어디 -h
에서와 같이 파일 이름을 숨길 수있는 매개 변수입니다 man grep
:
-h, –no 파일 이름
출력에서 파일 이름의 접두사를 표시하지 않습니다. 검색 할 파일이 하나만 있거나 표준 입력 만있는 경우 이것이 기본값입니다.
사용하고 있습니다
-H, –with 파일 이름
각 일치에 대한 파일 이름을 인쇄하십시오. 검색 할 파일이 둘 이상인 경우 이것이 기본값입니다.
답변
그냥 교체 -H
와 함께 -h
. man grep
옵션에 대한 자세한 내용을 확인하십시오
find . -name '*.bar' -exec grep -hn FOO {} \;
답변
매뉴얼 페이지에서 :
-h, --no-filename
Suppress the prefixing of file names on output. This is the default when there
is only one file (or only standard input) to search.