![](/img/trans.png)
[英]How to rename all directories , files and text in the files recursively using bash shell script in linux
[英]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.