Bash 查找包含两个模式的所有文件
我正在尝试查找包含2个特定字符串的所有文件。它需要同时匹配string1和string2。到目前为止,我所尝试的:Bash 查找包含两个模式的所有文件,bash,grep,Bash,Grep,我正在尝试查找包含2个特定字符串的所有文件。它需要同时匹配string1和string2。到目前为止,我所尝试的: find ~ -type f -name "*.txt" -exec grep -lie 'string1' -lie 'string2' {} \; 但这似乎找到了string1或string2。如何找到同时包含string1和string2的所有文件 在这个特定的例子中,我尝试查找同时包含字符串“sed”和“lynx”的所有文档 find ~ -type f -name "*
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' {} \;
使用下面的
grep
匹配这两种模式
find ~ -type f -name "*.txt" -exec grep -iE 'string1.*string2|string2.*string1' {} +
请注意,
{}+
一次在所有文件上应用grep
comamnd,而不是调用多个进程。即使字符串不在同一行,也可以这样做:
find~-type f-name\*.txt-exec grep-iq string1\{}-执行grep-iq string2\{}-打印
它们是否在同一行上?它们很可能不在同一行上,但在某些情况下是可能的。对所有您想要涵盖的情况进行最小的输入和输出将非常有用。