使用 bash 脚本通过将尾随数字增加一个常量来重命名多个文件

使用 bash 脚本通过将尾随数字增加一个常量来重命名多个文件

我的目录中有这些文件:

mmm.1
mmm.2
mmm.3
.
.
.
.
.

我想将它们重命名为:

mmm.31
mmm.32
mmm.33
.
.
.

只需将数字“30”添加到每个文件名的尾随数字即可。

答案1

已修改:在您告知我们您正在处理约 300 个文件后,需要修改答案。在下面编辑的答案中,将数字 300 替换为预先存在的文件的确切上限数字。

for file in mmm.{300..1} ; do mv "${file}" "${file%.*}.$((30+${file#*.}))" ; done

这个答案非常有效,因为它bash使用bash本机功能完成所有操作,并且不需要外部程序或启动子进程。

  1. ${file%.*}返回句点之前的文件名前缀。

  2. `$((..)) 是 bash 的数学运算习惯用法。

  3. ${file#*.}返回句点后的文件名后缀。如果您担心文件名可能包含多个嵌入句点,请将其替换###.

请参阅man bash参考资料 获取更多详细信息和许多其他非常酷的本机功能。

相关内容