Grep多个字符串

时间:2017-02-03 15:52:27

标签: linux grep

我想找到一个包含A但没有B和C的文件列表。

grep -r -L 'B\|C'找到没有B和C的那些,但是如何添加A的条件?

3 个答案:

答案 0 :(得分:2)

您可以使用-P--perl-regexp

选项negative lookahead in grep
grep -r -P -L '^(?!.*A).*$|B|C'

答案 1 :(得分:2)

如果我理解你的问题:

grep -l "A" $(grep -r -E -L "B|C" *)

即。搜索包含" A"的文件在原始命令生成的文件列表中。

答案 2 :(得分:0)

如果我理解你的问题,你可以这样做:

grep "A" file.txt | grep -v -e "B" -e "C"

第一个grep找到包含A的行,第二个grep获取结果并删除包含" B"或" C"。这适用于反转匹配的-v标志。