如何使用 Linux shell 重新命名檔案並刪除 " 字符

如何使用 Linux shell 重新命名檔案並刪除 " 字符

我有許多文件名中帶有雙引號的文件,如下所示:

“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

相關內容