Precisa de ajuda para renomear arquivos em massa usando a linha de comando que contém uma determinada string

1

Eu tenho cerca de 200 arquivos com o seguinte nome:

01_-_Back_Alley_Uproar.avi
01_-_Bad_Luck_Cat.avi
01_-_Beep_Beep.avi
02_-_Broomstick_Bunny.avi
02_-_Bunker_Hill.avi

e assim por diante. Gostaria de renomeá-los para ficarem assim:

Back Alley Uproar.avi
Bad Luck Cat.avi
Beep Beep.avi
Broomstick Bunny
Bunker Hill

e assim por diante ...

Eu preciso usar a linha de comando como eu estou conectado via ssh via winSCP de uma caixa do windows para chegar ao meu servidor Ubuntu contendo esses arquivos. Agradecemos antecipadamente.

    
por wardr 05.09.2013 / 09:06

2 respostas

1

Você pode usar o comando rename , com expressões regulares apropriadas, por exemplo,

s/^\d+_-_//

para 'substituir uma sequência inicial de dígitos seguida por sublinhado hífen sublinhado'; e

s/_/ /g

para substituir sublinhados por espaços. Então

rename -nv 's/^\d+_-_//;s/_/ /g' *.avi

O -n faz com que seja executado no modo de teste (teste a seco) - teste-o em seu diretório e se você estiver satisfeito por estar fazendo a coisa certa, execute-o sem o n

    
por steeldriver 05.09.2013 / 09:25
0

Você pode usar o seguinte comando:

rename 's/[0-9]+_-_//; s/_/\ /g' *
    
por Radu Rădeanu 05.09.2013 / 09:18