【发布时间】:2011-06-26 17:55:55
【问题描述】:
我如何递归地查看包含一个字符串但没有另一个字符串的文件列表?另外,我的意思是评估文件的文本,而不是文件名。
结论:
根据 cmets,我最终使用:
find . -name "*.html" -exec grep -lR 'base\-maps' {} \; | xargs grep -L 'base\-maps\-bot'
这返回了带有“base-maps”而不是“base-maps-bot”的文件。谢谢!!
【问题讨论】:
-
最简单的方法是使用
grep -l列出匹配模式的文件,然后将其通过管道传送到grep -v。 -
Mikel:但是,它只会将文件名通过管道传递给另一个
grep,而后者又只能从这些文件名中过滤而不是文件内容。 -
我已经尝试过了,并且同意 Alan 的观点,即它只过滤文件名。因此,它并没有达到我希望的效果。
-
@Alan 你不能传递 grep 一个文件集,如果是这样,你不能传递一个基于另一个 grep 的文件集吗?这只是我想象的可能性,但如果有人知道怎么做,那就太棒了:D
标签: linux command-line find command grep