【发布时间】:2014-01-18 20:11:08
【问题描述】:
使用 grep,我可以在本地文件夹的 50 个文件中找到一个单词,即:
grep -i "hello" *.html
但是我怎样才能找到包含两个单词的文件呢?示例:我想查找包含单词“hello”和单词“peter”的所有文件。如何组合两个 grep?
【问题讨论】:
使用 grep,我可以在本地文件夹的 50 个文件中找到一个单词,即:
grep -i "hello" *.html
但是我怎样才能找到包含两个单词的文件呢?示例:我想查找包含单词“hello”和单词“peter”的所有文件。如何组合两个 grep?
【问题讨论】:
要查看包含这两个单词的文件(可能位于不同的行),请使用-l 和xargs:
grep -il "hello" *.html | xargs grep -il "peter"
编辑
如果您的文件名称中有空格,那么我们需要更加小心。为此,我们可以使用 grep 和 xargs 的特殊选项:
grep -ilZ "hello" *.html | xargs -0 grep -il "peter"
【讨论】:
egrep -irl "hello" * |egrep -irl "peter" \`cat -`
这将在所有子文件夹中递归搜索并匹配引号内的正则表达式
【讨论】: