gpt4 book ai didi

Linux 重命名文件夹中的文件,其中名称为 ab1.jpg、ab2.jpg、ab10.jpg 等

转载 作者:太空宇宙 更新时间:2023-11-04 04:43:15 30 4
gpt4 key购买 nike

文件的顺序由可以嵌入文件名中的数字确定,但有时嵌入在名称的开头,例如文件1.txt文件2.txt文件3.txt文件10.txt文件11.txtETC..或者1.txt2.txt10.txt等.

重命名后的名称应类似于...文件01.txt文件02.txt文件03.txt文件10.txt等等...

重要的是,file1.txt 将成为 file01.txt,而不是 file10.txt 将成为 file01.txt。

我认为在重命名之前必须先格式化文件名。我不知道如何在命令行上执行此操作,也许它必须由脚本完成,但我希望不是。

应该为该命令指定最终名称中应包含的位数。如果可以使用格式化字符串,我们还可以给出数字所在的位置。

最佳答案

使用 perl rename 实用程序:

rename -n 's/\d+/sprintf("%02d", $&)/e' *.txt

结果将是:

$ ls
file10.txt file1.txt file2.txt file3.txt

$ rename -n 's/\d+/sprintf("%02d", $&)/e' *.txt
rename(file1.txt, file01.txt)
rename(file2.txt, file02.txt)
rename(file3.txt, file03.txt)

如果看起来不错,请删除 -n 试运行标志。

请注意,sprintf 的格式字符串决定了零填充的“宽度”,因此,如果您处理的文件名达到三位数,则需要将其更改为 “%03d” 等。

$ ls
file100.txt file10.txt file1.txt file2.txt file3.txt

$ rename -n 's/\d+/sprintf("%03d", $&)/e' *.txt
rename(file10.txt, file010.txt)
rename(file1.txt, file001.txt)
rename(file2.txt, file002.txt)
rename(file3.txt, file003.txt)

关于Linux 重命名文件夹中的文件,其中名称为 ab1.jpg、ab2.jpg、ab10.jpg 等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54277778/

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