7

私のコード

$  *.php | grep google

各一致の横にファイル名と行番号を印刷するにはどうすればよいですか?

4

7 に答える 7

22
grep google *.php

多くのディレクトリにまたがる場合:

find . -name \*.php -print0 | xargs -0 grep -n -H google

(コメントで説明されているように、-H は、xargs で残りのファイルが 1 つしかない場合に役立ちます)

于 2009-02-26T20:07:18.543 に答える
6

やってはいけない

$ *.php | grep

これは、「最初の PHP プログラムを実行し、残りの名前をパラメーターとしてワイルドカードで指定してから、出力に対して grep を実行する」ことを意味します。

そのはず:

$ grep -n -H "google" *.php

-nフラグは行番号を実行するように指示し、フラグ-Hはファイルしかない場合でもファイル名を表示するように指示します。複数のファイルが検索されている場合、grep はデフォルトでファイル名を表示しますが、一致するファイルがいくつあるかに関係なく、出力が一貫していることを確認する必要があります。

于 2009-02-26T20:16:40.677 に答える
4
grep -RH "google" *.php
于 2010-04-06T01:45:37.267 に答える
2

http://betterthangrep.comで ack をご覧ください。あなたがしようとしているものに相当するものは次のとおりです。

ack google --php
于 2010-04-08T22:40:06.587 に答える
1
find ./*.php -exec grep -l 'google' {} \; 
于 2010-04-05T21:21:24.347 に答える
0
find . -name "*.php" -print | xargs grep -n "searchstring"
于 2009-09-14T12:27:03.707 に答える
0

他の機能を表示するには、「man grep」を使用します。

for i in $(ls *.php); do  grep -n --with-filename "google" $i; done;
于 2009-02-26T20:09:21.770 に答える