如何重命名计算出的一堆文件名
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
。
我想重命名一堆文件名。重命名是基于文件名的计算。这意味着实际文件名 + 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
。