linux - 使用 grep 递归定位所有具有字符串 "a"和字符串 "b"的文件

标签 linux string recursion grep find

我一直在使用以下命令递归搜索目录中的字符串。

grep -Rn "myString" *

我想知道是否有人会教我如何搜索多个 递归地在同一个文件中的字符串。也就是说,我想找到所有同时“String1”“String2”的文件名。

如果我能知道包含这两个字符串的文件中每个字符串的行号,那就太好了。

我尝试了好几件事都没有成功。我想在基目录中开始搜索并递归地向下搜索所有子目录。如果有人可以帮助我,我将不胜感激。

最佳答案

再次将第一次搜索的结果通过管道传输到 grep:

grep -RlZ "String1" . | xargs -0 grep -l "String2"

这将列出包含 String1String2 的文件。

获取包含这两个字符串的文件的行号可能不是很有效,因为您需要先验。一种方法是再次将结果通过管道传输到 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/

相关文章:

php代码被写入以纯文本形式输出,为什么?

c - 为什么 ififd 的 pci linux 实现使用 "platform_driver"而不是 "pci_driver"?

c++ - 如何将带有双反斜杠的字符串转换为单反斜杠

java - 在Java中如何找到两个字符串之间所有重叠的短语?

python - 正则表达式从以 _ 和 _ 下划线后的 str 结尾的字符串中获取数字

java - JAVA从字母表的相反端找到对应的字母并递归地从字符串中删除

linux - rt2870.o/rt2870.ko USB 无线适配器安装问题

python - 在 Python 上使用回溯的子集总和

c# - 在递归调用中跟踪项目编号 C#

linux - 在 Linux 上提取 gz 文件时出现问题