如何重命名计算出的一堆文件名

Howto rename bunch of filenames which are calculated

我想重命名一堆文件名。重命名是基于文件名的计算。这意味着实际文件名 + 3600 = 新文件名。 重要的是 pid 文件中的下划线必须保留。

提前致谢!

我的系统是 Debian Stretch。

实际文件名:

134235.error
134235_.pid
134235.tiff


13893.error
13893_.pid
13893.tiff

1.error
1_.pid
1.tiff

重命名为:

137835.error
137835_.pid
137835.tiff


17493.error
17493_.pid
17493.tiff

3601.error
3601_.pid
3601.tiff

使用 Perl 的独立 rename 命令。一些发行版称它为 prename.

rename -n 's/(\d+)(.+)/${\(+3600)}/' *

如果一切正常,请删除 -n

for fname in *; do
   echo mv -- "$fname" "${fname/*[[:digit:]]/$((${fname%%[^[:digit:]]*}+3600))}"
done

如果一切正常,删除 echo