gpt4 book ai didi

linux - 如何在终端命令中将多个文件的数字顺序 1、2 或 3 位重命名为 4 位?

转载 作者:太空宇宙 更新时间:2023-11-04 12:34:33 28 4
gpt4 key购买 nike

我想像这样重命名多个文件:

qwsas_1.jpg     >> 0001.jpg
2wase_2.jpg >> 0002.jpg
swaq2_3.jpg >> 0003.jpg
qweei_14.jpg >> 0004.jpg
dadaS_23.jpg >> 0005.jpg
aswee_35.jpg >> 0006.jpg

我使用这个命令:

a=1
for i in *.jpg; do
new=$(printf "%04d.jpg" "$a") #04 pad to length of 4
mv -- "$i" "$new"
let a=a+1
done

refer

但是结果:

qwsas_1.jpg     >> 0001.jpg
qweei_14.jpg >> 0002.jpg
2wase_2.jpg >> 0003.jpg
dadaS_23.jpg >> 0004.jpg
swaq2_3.jpg >> 0005.jpg
aswee_35.jpg >> 0006.jpg

我应该如何处理代码?

最佳答案

在遍历和重命名文件之前,您可以按数字部分对文件进行排序:

a=1
while read -r filename; do
new=$(printf "%04d.jpg" "$a") #04 pad to length of 4
mv -- "$filename" "$new"
let a=a+1
done < <(ls *.jpg | sort -t_ -k2n)

样本运行:

renaming qwsas_1.jpg 0001.jpg
renaming 2wase_2.jpg 0002.jpg
renaming swaq2_3.jpg 0003.jpg
renaming qweei_14.jpg 0004.jpg
renaming dadaS_23.jpg 0005.jpg
renaming aswee_35.jpg 0006.jpg

关于linux - 如何在终端命令中将多个文件的数字顺序 1、2 或 3 位重命名为 4 位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42335086/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com