У меня есть несколько файлов с двойными кавычками в имени файла, например:
"Это_длинное_имя_файла_с_цитатами".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