簡體   English   中英

如何使用Shell腳本重命名所有文件?

[英]How to rename all the files using shell script?

我有數百個相同格式的文件。 我想通過使用前六個字符和擴展名來重命名文件。

以下代碼提取了前6個字符...我正在顯示它們

     for i in *.png; do echo $i | awk '{ print substr($0, 0, 7 )}'; done

我無法連接該擴展名。 有人可以幫忙。 如果腳本可以用mv命令完成,那就太好了。

謝謝

假設每個文件名在擴展名前至少包含六個字符,則可以編寫

for file in *.png ; do mv "$file" "${file:0:6}.png" ; done

如果繼續使用awk ,請在循環體外進行配管:

for i in *.png; do echo $i; done |
awk '{ print "mv $0 " substr($0, 0, 7) ".png"}' |
sh -vn

修改后的awk打印mv命令。 當您感到滿意時,它將做正確的工作,將-vn替換為-x (或什么都不做)。

這幾乎適用於任何外殼。 如果您專門使用bash ,則可以使用內置的字符串操作來完成所需的工作-請參閱ruakh的答案以了解一種可能的技術。 還有許多其他選擇。 一些系統具有功能強大的rename命令(其他系統具有功能較弱的版本)。

暫無
暫無

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

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