查找更高版本的文件

时间:2017-01-09 20:26:24

标签: regex perl

我有一个文件夹,里面有大约一千个文件。

在文件名的末尾有几百个带有重复项的文件,其中包含字符串(2)

找到带有该后缀的文件名最简单的方法是什么,并删除名称中没有(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')

我确定它不是最佳解决方案,但确实有效。