我需要在Linux中重命名数百个文件,以便从命令行更改每个文件的唯一标识符.为了举例,我有一个包含以下内容的文件:
old_name1 new_name1
old_name2 new_name2
Run Code Online (Sandbox Code Playgroud)
并需要将名称从新ID更改为旧ID.文件名包含ID,但也有额外的字符.因此,我的计划最终是:
abcd_old_name1_1234.txt ==> abcd_new_name1_1234.txt
abcd_old_name2_1234.txt ==> abcd_new_name2_1234.txt
Run Code Online (Sandbox Code Playgroud)
rename在这里使用显然是相当有用的,但我正在努力弄清楚如何迭代所需名称更改的文件并将其作为输入传递给rename?
编辑:为了澄清,我希望制作数百个不同的重命名命令,需要进行的不同更改列在文本文件中.
如果已经回答道歉,我有一个很好的打猎,但找不到类似的情况.
我有一个包含数字的二维数组.我试图计算出每个子阵列中的单个数字与每个其他子阵列中的一个相乘的乘积; 然后,我需要为所有可能的组合执行此操作.
目的是我输入一个单独事件频率的文件,并获得这些事件发生的特定系列概率的输出,每组中有一个事件.
我在前一个问题的帮助下将一些代码混合在一起:
for my $aref ( getCartesian(@freq) ) {
my $p = 1;
foreach my $n (@$aref) {
$p = $p * $n;
}
print "$p\n";
}
sub getCartesian {
my @input = @_;
my @ret = map [$_], @{ shift @input };
for my $a2 (@input) {
@ret = map {
my $v = $_;
map [@$v, $_], @$a2;
}
@ret;
}
return @ret;
}
Run Code Online (Sandbox Code Playgroud)
其中@freq是一个数组数组,例如:
@freq = [0.1, 0.2, 0.3,]
[0.4, 0.5, 0.6,]
[0.7, …Run Code Online (Sandbox Code Playgroud)