cat 및 grep 일치 항목의 파일 이름 및 줄 번호
문제
내 코드
$ *.php | grep google
각 일치 항목 옆에 파일 이름과 줄 번호를 어떻게 인쇄합니까?
해결책
grep google *.php
많은 디렉토리에 걸쳐있는 경우 :
find . -name \*.php -print0 | xargs -0 grep -n -H google
(주석에 설명 된 바와 같이, Xargs가 나머지 파일 하나만 제공하는 경우 -h는 유용합니다)
다른 팁
당신은 이러면 안 돼요
$ *.php | grep
이는 "나머지 이름을 매개변수로 와일드카드로 사용하여 첫 번째 PHP 프로그램을 실행한 다음 출력에서 grep을 실행"한다는 의미입니다.
그것은해야한다:
$ grep -n -H "google" *.php
그만큼 -n
플래그는 줄 번호를 지정하라고 지시하고, -H
플래그는 파일만 있어도 파일 이름을 표시하도록 지시합니다.검색 중인 파일이 여러 개 있는 경우 Grep은 기본적으로 파일 이름을 표시하지만 일치하는 파일 수에 관계없이 출력이 일관되는지 확인하고 싶을 수도 있습니다.
grep -RH "google" *.php
ACK를 살펴보십시오 http://betterthangrep.com. 당신이 시도하는 것의 ACK의 동등한 것은 다음과 같습니다.
ack google --php
find ./*.php -exec grep -l 'google' {} \;
"Man Grep"을 사용하여 다른 기능을보십시오.
for i in $(ls *.php); do grep -n --with-filename "google" $i; done;
find . -name "*.php" -print | xargs grep -n "searchstring"
제휴하지 않습니다 StackOverflow