0

次のコマンドを使用して、すべての .pl ファイルで文字列 "/local" を grep していますが、ここで何が問題なのか指摘できますか?

find . *.pl| xargs grep '/local' -sl
4

4 に答える 4

1

なぜ誰もが「見つける」ことを提案しているのですか? シェルは「.pl」ファイルを処理できます。

grep  "/local"  *.pl
于 2013-11-09T16:24:35.430 に答える
1

引数を渡し-name、引用します*.pl:

find . -name "*.pl" | xargs grep '/local' -sl
于 2013-11-09T06:34:08.730 に答える
0

-exec は遅くなる傾向があります。

私は部分的です:

find . -name "*.pl" -print0 | xargs -0 grep -sl '/local'

...改行を含むファイル名と混同されないためです。

ただし、GNU grep の一部のバージョンでは、検索するファイル名のリストが非常に長い grep コマンドによって引き起こされるメモリ リークが発生しているように見えることに注意してください。このような状況では、-exec の方が信頼性が高くなります。

于 2013-11-09T06:41:50.567 に答える
0

同じくらい簡単にできます

find . -type f -name '*.pl' -exec grep '/local/' {} \;

サポートしている場合はより最適な形式です。これにより、一度に複数のファイルがgrepに渡されます

find . -type f -name '*.pl' -exec grep '/local/' {} +
于 2013-11-09T06:34:02.830 に答える