Bash Shell Scripting - 在不同目录中查找重复的命名文件

时间:2014-01-27 14:21:15

标签: bash shell scripting duplicates msys

我在不同的目录中有几个文件文件夹,我非常肯定他们已经在其他目录中使用大写字母重命名

我希望能够在不同的目录中找到那些重复命名的文件和文件夹并对其进行排序,以便我可以看到然后跟踪它们。

类似的东西:

C:\Program Files\hello.txt

C:\WhateverFolder\heLlo.txt

这将是该计划的输出或类似的东西。

你们认为这可能吗?

2 个答案:

答案 0 :(得分:2)

find /directory | awk '{names[gensub(".*/","","g")]++} END { for (name in names) { if (names[name] > 1) { print name } } }' 

可能会为您提供重复名称(文件和文件夹)的列表。这给了你一个起点。

上面假设gawk,所以这里有一个更通用的解决方案,它甚至支持混合大小写的文件名,赞成mklement0的想法:

find /directory | awk -F '/' '{names[tolower($NF)]++} END { for (name in names) { if (names[name]>1) { print name }}}'

答案 1 :(得分:0)

如果Unix-y命令对你来说太多了,你可以得到这样的列表并自己排序吗?

DIR /B /S /L  somefolder