我有一个文件夹,里面有大约一千个文件。
在文件名的末尾有几百个带有重复项的文件,其中包含字符串(2)
。
找到带有该后缀的文件名最简单的方法是什么,并删除名称中没有(2)
的原始文件?
答案 0 :(得分:3)
Perl脚本:
#!/usr/bin/perl
use warnings;
use strict;
my $dir = shift;
for my $file (glob "$dir/*(2)") {
my $original = substr $file, 0, -3;
unlink $original if -f $original;
}
指定目录名称作为参数。有关说明,请参阅
答案 1 :(得分:-1)
经过一番阅读后,我找到了解决方案。我在最后使用powershell来删除没有sufix的文件并保留较新的文件。我喜欢oneliners所以我想出了这个:
Remove-Item ((Get-ChildItem).FullName -match ".+\(2\).+" -replace "(.+)\s\(2\)(.+)",'$1$2')
我确定它不是最佳解决方案,但确实有效。