我有一个文本文件,每行包含多个关键字,例如
然后我有一组包含许多文件的子目录。我需要一个linux grep或sed命令等价物,它将在所有子目录中递归搜索所有关键字并为我打印文件名。
我可以find . | xargs grep "key1"
,但我必须为每个关键字做。我需要一个命令,它可以用于所有Key1,Key2,Key3等。
请帮助解决这个问题。
答案 0 :(得分:0)
这应该做:
grep -rlf file .
-r
用于递归
-l
仅打印包含匹配项
-f
从文件中获取模式,每行一个。
答案 1 :(得分:0)
2个关键字的AND模式
find . -type f -exec grep -q word1 {} \; -exec grep -l word2 {} \;
3个关键字的AND模式
find . -type f -exec grep -q word1 {} \; -exec grep -q word2 {} \; -exec grep -l word3 {} \;