我有几个文件和不同的目录,我是相当积极的,他们已重命名这些其他目录与大写字母文件夹重复命名的文件。的Bash shell脚本 - 了解不同的目录
我希望能够在不同的目录中找到那些重复命名的文件和文件夹,并对它们进行排序,以便我可以查看并在之后跟踪它们。
喜欢的东西:
C:\Program Files\hello.txt
C:\WhateverFolder\heLlo.txt
这将是该计划或类似的东西输出。
你们认为这是可能的吗?
我有几个文件和不同的目录,我是相当积极的,他们已重命名这些其他目录与大写字母文件夹重复命名的文件。的Bash shell脚本 - 了解不同的目录
我希望能够在不同的目录中找到那些重复命名的文件和文件夹,并对它们进行排序,以便我可以查看并在之后跟踪它们。
喜欢的东西:
C:\Program Files\hello.txt
C:\WhateverFolder\heLlo.txt
这将是该计划或类似的东西输出。
你们认为这是可能的吗?
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 }}}'
好吧,也许你现在可以解决这个问题:它说“ awk“不存在。我将如何让它存在? – Gabriel
@Gabriel:假设你在Windows上(你的示例路径提示),你需要一个Unix兼容层,例如[MSYS](http://www.mingw.org/wiki/MSYS) – mklement0
@Zsolt:美丽的' akw'ery,但是(a)最后缺少'}}',(b)你假设'gawk';应该在更多平台上工作的命令变体是:find/directory | awk -F'/''{names [$ NF] ++} END {for(name in name){if(names [name]> 1){print name}}}'' – mklement0
如果在Unix-Y命令你太多,你可以得到这样的列表并自行排除它可能吗?
DIR /B /S /L somefolder
这可以帮助... http://stackoverflow.com/questions/20248082/binary-compare-all-files-against-all-files-in-a-specified-directory-and-subdire/ 20248223#20248223 –
不幸的是,它并没有帮助我,对不起:/要么我是太多的“noob”,要么我无法做到这一点 – Gabriel