![如何使用 Linux shell 重新命名檔案並刪除 " 字符](https://rvso.com/image/1421903/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20Linux%20shell%20%E9%87%8D%E6%96%B0%E5%91%BD%E5%90%8D%E6%AA%94%E6%A1%88%E4%B8%A6%E5%88%AA%E9%99%A4%20%22%20%E5%AD%97%E7%AC%A6.png)
我有許多文件名中帶有雙引號的文件,如下所示:
“This_is_a_long_filename_with_quotes”.mp3
我嘗試使用linux命令重命名,我可以使用輕鬆刪除下劃線
rename 's/_//g' *
但是當我嘗試使用 \" 時什麼也沒有發生(我使用 -n 來查看更改):
rename -n 's/\"//g' *
沒有任何內容被重新命名
謝謝!
答案1
您的檔案名稱中有「智慧引號」:
“Tokyo_String_Quartet-Beethoven_-Late_String_Quartets-CD1-11-Quartet”.mp3
嘗試rename
使用插入的命令而不是"
或不使用rename
您可以執行以下sed
選項:
for f in *.mp3
do
new=$(echo $f | sed -E 's/[“”]//g')
mv $f $new
done
與使用所有批次 shell 操作一樣,mv
在原始資料夾的備份上測試/運行是最安全的...您可以透過放置在第一次嘗試時echo
的位置來進行測試。mv
答案2
無需在單引號內轉義轉義雙引號。
rename -n 's/"//g' *
答案3
我可以在 Bash 中這樣做:
file=$(ls | grep \")
newName=$(echo $file | sed 's/\"//g')
mv $file $newName