我一直在使用以下命令递归搜索目录中的字符串。
grep -Rn "myString" *
我想知道是否有人会教我如何搜索多个 递归地在同一个文件中的字符串。也就是说,我想找到所有同时“String1”和“String2”的文件名。
如果我能知道包含这两个字符串的文件中每个字符串的行号,那就太好了。
我尝试了好几件事都没有成功。我想在基目录中开始搜索并递归地向下搜索所有子目录。如果有人可以帮助我,我将不胜感激。
最佳答案
再次将第一次搜索的结果通过管道传输到 grep
:
grep -RlZ "String1" . | xargs -0 grep -l "String2"
这将列出包含 String1
和 String2
的文件。
获取包含这两个字符串的文件的行号可能不是很有效,因为您需要先验。一种方法是再次将结果通过管道传输到 grep
:
grep -RlZ "String1" . | xargs -0 grep -lZ "String2" | xargs -0 grep -En 'String1|String2'
关于linux - 使用 grep 递归定位所有具有字符串 "a"和字符串 "b"的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22560705/