1

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

.mp3 "This_is_a_long_filename_with_quotes"

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

rename 's/_//g' *

но когда я пытаюсь с \"ничего не происходит (я использую -n, чтобы увидеть изменения):

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

ничего не переименовано

Спасибо!

3 ответа3

2

У вас есть "умные кавычки" в именах ваших файлов:

“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 когда вы впервые попробуете это сделать.

1

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

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

Я смог сделать это в Bash с этим:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .