猫とgrepの試合のためのファイル名とlinenumbers
質問
私のコード
$ *.php | grep google
どのように私は、各試合の隣にファイル名とlinenumbersを印刷することができますか?
解決
grep google *.php
あなたは多くのディレクトリにまたがるする場合:
find . -name \*.php -print0 | xargs -0 grep -n -H google
(コメント欄で説明したようにxargsのが一つだけ残っているファイルを思い付く場合、-Hでは有用である)
他のヒント
あなたがやってはいけません。
$ *.php | grep
これは、「出力に対してgrepを実行し、パラメータとしてワイルドカード残りの名前で、最初のPHPプログラムを実行して、」意味ます。
これは、する必要があります:
$ grep -n -H "google" *.php
-n
フラグは、行番号を行うためにそれを伝え、-H
フラグは、ファイルがあります場合でも、ファイル名を表示するように指示します。検索されている複数のファイルがある場合、grepはファイル名を示すにデフォルト設定されますが、あなたはおそらく、必ず出力に関係なく存在しているどのように多くの一致するファイルの一貫性があるようにしたい。
grep -RH "google" *.php
http://betterthangrep.com のでACKをご覧ください。あなたがしようとしているものの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