我在子文件夹里有很多文件。它们看起来都是in.*辐射,其中*只是一个数字。我需要将不同子文件夹中的这些类似文件名重命名为常量名,但要将它们保存在各自的文件夹中。
有没有办法用一个命令将它们重命名为just in.radiate?
是在linux还是在MATLAB中?
Perl脚本

#!/usr/bin/perl
use warnings;
use strict;

my $newname = 'in.radiate'; # If you want a different filename, edit this line

foreach my $folder (glob("*"))
{
    # Ensure it's a folder
    if (-d $folder)
    {
        print "Processing $folder\n";
        system("mv $folder/*.radiate $folder/$newname");
    }
}

最佳答案

bash解决方案:

for file in $(find dir -iname "*.radiate"); do
mv $file ${file/.*././}
done

要查找所有.radiate文件:
$ find dir -iname "*.radiate"
dir-root/1/1/in.1.radiate
dir-root/1/10/in.10.radiate
dir-root/1/100/in.100.radiate
dir-root/1/101/in.101.radiate
dir-root/1/102/in.102.radiate
...

全部更换后。和。使用上面的循环:
$ find dir -iname "*.radiate"
dir-root/1/1/in.radiate
dir-root/1/10/in.radiate
dir-root/1/100/in.radiate
dir-root/1/101/in.radiate
dir-root/1/102/in.radiate

关于linux - 将具有相似文件名的文件重命名为相同文件名但不同文件夹的文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29834864/

10-11 21:30