我正在运行Perl脚本并尝试重命名文件,如下所示.
@H_404_7@
@H_404_7@我有一个包含其他非相关文件的文件夹中的* .ru.jp文件列表.我想用一个我作为计数器变量获得的数字重命名.
@H_404_7@在Bash中,我会这样做……
@H_404_7@
for i in $(ls *.ru.jp); do x=${i%%.*}; mv $i "$x"t"$counter".ru.jp ;done@H_404_7@如果计数器为1,则e.g myfile.ru.jp将重命名为myfilet1.ru.jp.“t”只是表示t1,t2等的命名.并且最后会有一个外部循环,最终将标记mafilet2.ru.jp等等,因为计数器变量增加. @H_404_7@我想知道如何在Perl脚本中编写和表示类似for循环? @H_404_7@谢谢. @H_404_7@-joey
解决方法
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