我正在运行一个 Perl 脚本并尝试完成如下重命名文件。

我在包含其他非相关文件的文件夹中有一个 *.ru.jp 文件列表。我想用我作为计数器变量的数字重命名。

在 Bash 中,我会做...

for i in $(ls *.ru.jp); do x=${i%%.*}; mv $i  "$x"t"$counter".ru.jp ;done

例如,如果计数器为 1,myfile.ru.jp 将被重命名为 myfilet1.ru.jp。“t”只是一个命名来表示 t1、t2...等。最重要的是有一个外循环,随着计数器变量的增加,它最终会标记 mafilet2.ru.jp 等等。

我想知道如何编写和表示与 Perl 脚本中类似的 for 循环?

谢谢。

-乔伊

最佳答案

perl -e 'for $old (@ARGV) {
           ++$counter;
           if (($new=$old) =~ s/(\.ru\.jp)\z/t$counter$1/) {
             rename $old => $new or warn "$0: rename: $!\n";
           }
         }' *.ru.jp

关于perl - 如何在 Perl 的 for 循环中重命名文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1952789/

10-13 09:28