是否有一些Unix util允许我用几乎没有打字的方式grep多个文件?
题
现在我做了很多:
find * | grep py$ | xargs grep foo
我记得有一些实用程序以较少的输入方式执行此操作,但是哪个?
更新:如果可能,我更喜欢使用Bash shell。
解决方案
其他提示
你可能会发现你的shell帮助你。例如,在 zsh 中,你可以做到
grep foo **/*.py
如果.py文件的数量不超过命令允许的最大参数数(64k?)。请注意,您可以对文件进行限定,例如。
grep foo **/*.py(mh-5)
将为您提供过去5小时内修改的所有内容。
您是否尝试过确认。
zsh有递归通配,所以你可以做
grep foo **/*.py
看看马,没找到:)
更新:哦,如果你做了很多事情,那么别名或为其编写功能当然不会受到伤害
它被称为grep * wink *: - )
当前目录中的所有py
grep -R foo *.py
当前和任何子目录中的所有文件
grep -R foo .
find . -name "*.py" -exec grep -H foo '{}' ';'
grep -r --include='*.py' foo *
我使用的东西非常类似于你的find / grep对,尽管有更多条件 - 例如,排除.svn目录中的文件。我做了这么多,我只围绕这些调用制作了脚本,所以我可以调用“src-grep ...”。并且它基本上做了你在这里做的事情。 (然后我为许多上下文行添加了一个可选扩展,以传递给grep -C标志(如果提供),以及一个单独的版本来grep定义语句的结果。)
对我来说,这比递归grep更有用,更快。
不隶属于 StackOverflow