我正在尝试在我的电子邮件备份中搜索一封重要的电子邮件。它是一个带有子目录的目录,其中包含几千个.eml
文件(在 Linux 文件系统上)。我想搜索.eml
包含三个单词的文本文件并排除一个单词。
首先,我尝试搜索一个词,然后用管道搜索另一个词。
grep -R 'foo' ~/Directory/path | grep 'bar'
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为它只返回包含同一行上的两个单词的文件。我需要在整个文件中包含两个单词的文件。
我尝试查找包含一个单词的文件并将文件内容通过管道传输到输出文件。
grep -rIlZ '.' -e 'foo' | xargs -0 cat > MyOutputFile
Run Code Online (Sandbox Code Playgroud)
这很有帮助,因为我可以看到上下文。但我需要搜索不止一个词。是否可以将其扩展为搜索多个单词并排除一个单词?
grep ×1