若同一個資料夾裡,要用同樣的規則修改檔名,如所有為.dat副檔名要更名為.txt,可以寫一個簡單的shell script來完成。
unix中變數替換的shell script:
${filename%word} - 由filename變數內容的後端,向前刪除符合word關鍵字(取最短)
${filename%%word} - 由filename變數內容的後端,向前刪除符合word關鍵字(取最長)
${filename#word} - 由filename變數內容的前端,向後刪除符合word關鍵字(取最短)
${filename##word} - 由filename變數內容的前端,向後刪除符合word關鍵字(取最長)
舉例:
變數$abc = howard, john, tom
# echo ${abc%,*}
howard, john
# echo ${abc%%,*}
howard
example:將附檔名dat改為txt:
#/bin/bash
for filename in *.dat
do
mv $filename "${filename%dat}txt"
done
for filename in *.dat
do
mv $filename "${filename%dat}txt"
done