所以我需要循环遍历数组中的一些文件,并将该行中包含的数量增加以下目录中的“)_Graph_S1.dat”文件的数量。接下来我需要用替换的数字将文件重命名为,这样如果下面的目录中有 44 个文件,plate0013 (44)_Graph_S1.dat
就会变成这样。plate0013 (88)_Graph_S1.dat
例如,我在目录中工作:plate0013\2nd run\
. 我需要根据目录\2nd run\
中“ )_Graph_S1.dat”文件的数量重命名目录中的文件plate0013
。
我正在使用 Windows 7 和草莓 perl。
我已经尝试了位于此处的代码:https ://stackoverflow.com/a/5029064/2060081 ,但我的输出没有改变。
我还没有弄清楚如何获取上一个目录中的文件计数,所以我一直使用填充器44
,直到不再卡住为止。以下是我的代码的重要部分:
my @array = glob('*)_Graph_S1.dat');
foreach (@array) {
my $in = $_;
$in =~ s/(\d+)\)/$1+44/e;
rename $_, %in;
}
我的问题是我需要在新名称中包含括号,但我无法弄清楚如何做到这一点。
我以前从未使用过正则表达式,自 1995 年以来我就没有使用 perl 编程。我的 google 技能让我失望了。感谢您的阅读和回复。
多亏了@TLP,我才知道为什么我的系统代码没有正确输出。但是我发现我的正则表达式有问题。我的文件被命名为plate 0013 (01)_Graph_S1.dat
. 但它不包括新名称中的括号。