我的子文件夹中有很多文件。它们看起来都像 in.*.radiate,其中 * 只是一个数字。
有没有办法只用一个命令 in.radiate 就可以重命名它们?
在 Linux 还是 MATLAB 中?
答案1
是否有更简单的方法,我不知道,但这里有一个简单的 perl 脚本可以为您完成这项工作:
#!/usr/bin/perl
use warnings;
use strict;
my $oldname = '*.radiate'; # Pattern of old filename. Edit if desired.
my $newname = 'in.radiate'; # New filename. Edit if desired.
foreach my $folder1 (glob("*"))
{
if (-d $folder1)
{
foreach my $folder2 (glob("$folder1/*"))
{
if (-d "$folder2")
{
print "Processing $folder2\n";
system("mv $folder2/$oldname $folder2/$newname");
}
}
}
}
将其粘贴到名为的文件中,例如,rename.pl
在所有子目录所在的目录中,然后使用 运行它perl rename.pl
。
.radiate
它有一个错误/功能,如果正在处理的文件夹不包含文件,它会通知您。
可能有很多更短的方法可以做到这一点,但这应该足够易读,以便“任何人”都可以在需要时进行编辑。
编辑: 更新为遍历子目录的子目录,因为我误读了原始问题。在我的计算机上进行了测试,它在 Linux Mint 17 和 perl 5.18.2 上按预期运行