Как переименовать файлы, удалив символ " с помощью оболочки Linux

Как переименовать файлы, удалив символ " с помощью оболочки Linux

У меня есть несколько файлов с двойными кавычками в имени файла, например:

"Это_длинное_имя_файла_с_цитатами".mp3

Я пытаюсь использовать команду Linux rename, я могу легко стереть подчеркивание с помощью

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

Как и при использовании всех пакетных операций оболочки, mvбезопаснее всего тестировать/запускать на резервной копии исходной папки... Вы можете протестировать, поставив echoвместо mvпри первой попытке.

решение2

Нет необходимости экранировать двойные кавычки внутри одинарного guote.

rename -n 's/"//g' *

решение3

Мне удалось сделать это в Bash с помощью этого:

file=$(ls | grep \")
newName=$(echo $file | sed 's/\"//g')
mv $file $newName

Связанный контент