Como renomear arquivos excluindo o caractere "usando o shell do Linux

Como renomear arquivos excluindo o caractere "usando o shell do Linux

Eu tenho vários arquivos com aspas duplas no nome do arquivo assim:

"Este_é_um_nome_de_arquivo_longo_com_quotes".mp3

Eu tento usar o comando linux rename, posso apagar o sublinhado facilmente usando

rename 's/_//g' *

mas quando tento com \" nada acontece (uso -n para ver as alterações):

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

nada é renomeado

obrigado!

Responder1

Você tem "aspas inteligentes" nos nomes dos arquivos:

“Tokyo_String_Quartet-Beethoven_-Late_String_Quartets-CD1-11-Quartet”.mp3 

Experimente o renamecomando com aqueles inseridos em vez de"

Ou sem usar renamevocê pode fazer a sedopção:

for f in *.mp3
    do
        new=$(echo $f | sed -E 's/[“”]//g')
        mv $f $new
    done

Tal como acontece com todas as operações de shell em lote, mvé mais seguro testar/executar em um backup da pasta original... Você pode testar substituindo echoquando mvtentar pela primeira vez.

Responder2

Não há necessidade de escapar de aspas duplas dentro de um único guote.

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

Responder3

Consegui fazer isso no Bash com isto:

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

informação relacionada