Bash 如何重命名计算出的文件名
我想重命名一堆文件名。重命名基于文件名的计算。这意味着实际文件名+3600=新文件名。 重要的是,pid文件中的下划线必须保留 提前谢谢 我的系统是Debian Stretch 实际文件名: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
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,请给我提示和/或示例代码”的问题被认为是离题的。请访问并阅读,特别是阅读可能的副本