Linux 如何在多个文件中搜索重复的未知字符串

Linux 如何在多个文件中搜索重复的未知字符串,linux,bash,find,Linux,Bash,Find,我正在合并两个不同的linux内核分支,但我已经发现,在从两个Kconfig文件的git diff添加更改后,我的基本源代码在另一个目录的Kconfig文件中已经有一些配置 因此,我正在寻找与此类似的结果/输出: 找到-name.git-prune-o-type f(-name'Kconfig*)-print0 | xargs-0 grep--color-n“$@” …除此之外,我需要在不知道字符串的情况下,在不同的Kconfig文件中查找重复项,而不是搜索在该命令末尾输入的已知单词或字符串。

我正在合并两个不同的linux内核分支,但我已经发现,在从两个Kconfig文件的git diff添加更改后,我的基本源代码在另一个目录的Kconfig文件中已经有一些配置

因此,我正在寻找与此类似的结果/输出:

找到-name.git-prune-o-type f(-name'Kconfig*)-print0 | xargs-0 grep--color-n“$@”

…除此之外,我需要在不知道字符串的情况下,在不同的Kconfig文件中查找重复项,而不是搜索在该命令末尾输入的已知单词或字符串。

例如:我在ARCH/arm/Kconfig中添加了配置ARCH\u VEXPRESS以及更多类似内容,它位于第二个分支中。。。因为它在我的基地分部不见了。后来我发现有许多的副本,因为它已经存在于arch/vexpress/Kconfig或其他Kconfig中

那么,是否有人知道我可以使用某个命令或bash脚本来搜索所有Kconfig*文件,以查找“config$@”的重复项,而无需输入$@字符串


我希望它输出/显示文件名/位置、重复字符串,最好是它们所在的行号。

uniq-d命令将在其输入中显示重复行。我没有代表投票,但非常感谢!在添加新配置之前,或者在合并完整目录的Kconfig之后,您为我节省了大量的时间和工作,使我不必再进行检查。现在我可以运行这个命令了,看看arch/arm/Kconfig是否包含与arch/arm/mach-msm/Kconfig或drivers/soc/qcom/Kconfig相同的内容,就像我问的那样!天才!另外,这将有助于以同样的方式整理makefile差异,只需稍加调整,因为需要合并的文件是特定于设备的,但来自较旧的内核和内容移动!!!非常感谢!!!
find . -name .git -prune -o -type f -name 'Kconfig' -print0 |
    xargs -0 awk '/^config/ { count[$2]++; files[$2] = files[$2] " " FILENAME":"FNR; }
                  END { for (keyword in count) {
                        if (count[keyword] > 1) { print keyword files[keyword] }
                        }
                    }'