簡體   English   中英

Linux重命名文件夾名為ab1.jpg,ab2.jpg,ab10.jpg等的文件

[英]Linux Renaming files in a folder where the names is ab1.jpg, ab2.jpg, ab10.jpg etc

文件的順序由可以嵌入文件名中的數字確定,但有時在文件名的開頭,例如file1.txt file2.txt file3.txt file10.txt file11.txt等。或1.txt 2 .txt 10.txt等。

重命名的名稱應類似於... file01.txt file02.txt file03.txt file10.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 dry-run標志。

請注意, 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM