【发布时间】:2017-02-12 12:33:55
【问题描述】:
我使用命令递归查找包含某个string1的文件:
find . -type f -exec grep -H string1 {} \;
我需要查找包含多个字符串的文件,因此该命令应返回包含所有字符串的文件。像这样的:
find . -type f -exec grep -H string1 AND string2 {} \;
我找不到方法。字符串可以在文件中的任何位置。即使只有两个字符串的解决方案也会很好。
【问题讨论】:
-
我可以将您的问题转换为“egrep”问题:命令
egrep -l "string1|string2"给出包含string1或string2的所有文件,以防存在参数以使@987654327 @give 包含string1和string2的文件,您的问题将得到解决。 (不过我不知道这样的参数是否存在) -
理论上可以有一个联合运算符
&就像|对应于交集,但没有常见的正则表达式工具实现这一点。简单的解决方法是awk '/pattern1/ && /pattern2/',所以已经有一种简单的方法可以做到这一点,尽管grep没有。
标签: string unix search grep find