我试图查找包含2个特定字符串的所有文件。它需要匹配string1和string2。到目前为止我尝试过的事情:
find ~ -type f -name "*.txt" -exec grep -lie 'string1' -lie 'string2' {} \;
但这似乎找到了string1或string2。如何找到包含string1和string2的所有文件?
在这种特定情况下,我试图查找包含两个字符串的所有文档' sed'和' lynx'
find ~ -type f -name "*.txt" -exec grep -lie 'sed' -lie 'lynx' {} \;
答案 0 :(得分:2)
即使字符串不在同一行,也会这样做:
find ~ -type f -name \*.txt -exec grep -iq string1 \{\} \; -exec grep -iq string2 \{\} \; -print
答案 1 :(得分:1)
使用下面的grep
来匹配这两种模式。
find ~ -type f -name "*.txt" -exec grep -iE 'string1.*string2|string2.*string1' {} +
请注意{} +
在一次性所有文件中应用grep
comamnd,而不是调用多个进程。