Bash 如何重命名计算出的文件名

Bash 如何重命名计算出的文件名,bash,awk,sed,find,mv,Bash,Awk,Sed,Find,Mv,我想重命名一堆文件名。重命名基于文件名的计算。这意味着实际文件名+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

我想重命名一堆文件名。重命名基于文件名的计算。这意味着实际文件名+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的独立
重命名
命令。一些发行版称之为
prename

rename -n 's/(\d+)(.+)/${\($1+3600)}$2/' *
如果一切正常,请删除
-n

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

如果一切正常,请删除
echo

对不起,StackOverflow不是这样工作的。形式为“我想做X,请给我提示和/或示例代码”的问题被认为是离题的。请访问并阅读,特别是阅读可能的副本