我在所有.pl文件中使用以下命令grep for string“/ local”,有人可以指出这里有什么问题吗?
find . *.pl| xargs grep '/local' -sl
答案 0 :(得分:1)
传递-name
参数,并引用*.pl
:
find . -name "*.pl" | xargs grep '/local' -sl
答案 1 :(得分:1)
为什么每个人都建议“找到”? shell可以为你计算出你的“.pl”文件:
grep "/local" *.pl
答案 2 :(得分:0)
你可以轻松地
find . -type f -name '*.pl' -exec grep '/local/' {} \;
如果您的find支持它,或者更优化的形式,这会一次将多个文件传递给grep
find . -type f -name '*.pl' -exec grep '/local/' {} +
答案 3 :(得分:0)
-exec往往很慢。
我偏爱:
find . -name "*.pl" -print0 | xargs -0 grep -sl '/local'
...因为它不会被文件名与其中的换行符混淆。
但请注意,某些版本的GNU grep似乎有一个内存泄漏,由grep命令触发,并且要搜索很长的文件名列表。在这种情况下,-exec更可靠。