使用 Bash 重命名多个文件

使用 Bash 重命名多个文件

我有很多文件需要处理,我需要在 bash 中用这种格式替换它们的原始名称:

00000000000001_1.jpg 
00000000000002_1.jpg
00000000000003_1.jpg

等等

答案1

改编自Oli 的回答之一

rename -n 's/.+/our $i; $i++; sprintf("%014d_1.jpg", $i)/e' *

这将获取当前目录下的每个文件,并使用带数字的数字对其进行重命名14(我希望我数得没错),然后_1.jpg.our $i引入一个全局变量i,然后将其增加一并打印sprintf.e命令以表达式而不是字面形式rename评估替换的右侧(=第二个和第三个之间的所有内容/)。如果您对结果满意,请删除-n以执行重命名。

如果你想深入了解 perl 表达式及其美妙之处,perldoc 文档是正确的做法。

答案2

这对你有用吗:

i=1
for file in *; do
    mv "$file" "$(printf %014d $i)_1.jpg"
    i=$((i+1))
done

它将重命名当前目录下的每个文件,如下所示:

00000000000001_1.jpg
.
.
00000000000009_1.jpg
.
.
00000000000010_1.jpg
.
.

相关内容