打印结果常见于许多grep

时间:2018-03-19 17:56:41

标签: bash grep

如何使用两个grep语句并仅打印满足grep搜索的文件.... 要么 如何在文件中查找两个不同的String,如果包含两个字符串,则打印文件的内容?

1 个答案:

答案 0 :(得分:1)

这样的事情应该让你开始:

pattern1=your-pattern
pattern2=your-pattern
basedir=/path/to/dir
grep -Zlr "$pattern1" "$basedir" | xargs -0 grep -l "$pattern2"

关键要素:

  • -l标志用于打印匹配的文件名称。
  • -Z标志用于在匹配的文件名
  • 后输出空字节
  • xargs -0将在其输入中预期空终止的项目
  • 第一个grep会找到与pattern1匹配的文件,第二个grep会找到与pattern2匹配的文件 - >最终结果是匹配两种模式的文件列表。