Sho*_*ove 1 linux string recursion grep find
我一直在使用以下命令递归搜索目录中的字符串。
grep -Rn "myString" *
Run Code Online (Sandbox Code Playgroud)
我想知道是否有人会教我如何递归搜索同一文件中的多个字符串。也就是说,我想找到同时包含 “String1”和“ String2”的所有文件名。
如果我能知道包含两个字符串的文件中每个字符串的行号,那就太好了。
我一直在尝试几件事但没有成功。我想在基本目录中开始搜索,然后向下递归搜索所有子目录。如果有人能帮助我解决这个问题,我将不胜感激。
grep再次将第一次搜索的结果通过管道传输到:
grep -RlZ "String1" . | xargs -0 grep -l "String2"
Run Code Online (Sandbox Code Playgroud)
这将列出包含String1和的文件String2。
获取包含这两个字符串的文件的行号可能不是很有效,因为您需要知道先验的. 一种方法是再次将结果通过管道传输到grep:
grep -RlZ "String1" . | xargs -0 grep -lZ "String2" | xargs -0 grep -En 'String1|String2'
Run Code Online (Sandbox Code Playgroud)