Como posso substituir uma seqüência de caracteres no início do nome do arquivo com a seqüência de caracteres do final do nome do arquivo?

3

Estou procurando um comando que eu possa usar com o terminal do Kubuntu (Konsole).

(Edit) Eu descobri como remover os últimos 13 caracteres inúteis no nome do arquivo, então qual seria o script se eu quiser substituir "Karaoke" com o nome do artista no nome do arquivo é "Karaoke" + espaço + "título da música" + "-" + "nome do artista" + .mp4?

Existe uma maneira de substituir a palavra "Karaoke" por "nome do artista" por todos os arquivos em um diretório? Agradecemos antecipadamente.

Aqui estão os nomes de arquivos de exemplo que Oli solicitou:

Karaoke A Spoonful Of Sugar - Mary Poppins
Karaoke Ain't No Stoppin' Us Now - McFadden & Whitehead
Karaoke Ain't Nobody - Chaka Khan
Karaoke A Tisket, A Tasket - Ella Fitzgerald
    
por user295082 07.08.2014 / 17:58

2 respostas

3

É um pouco exagerado, mas funciona aqui:

$ rename 's/^Karaoke (.+) - (.+) - \w{11}\.mp4$/ - .mp4/' * -vn
Karaoke banana - cher - 12345678901.mp4 renamed as cher - banana.mp4

Você precisará desativar -n do final para renomear os arquivos. Eu deixei a segurança.

O que estamos fazendo aqui é encontrar qualquer arquivo que corresponda a esse padrão, capturando o artista e a trilha dentro desse padrão e então substituindo a coisa toda por esses dois grupos (e alguma formatação e extensão).

Eu não posso prever o que aconteceria se você tivesse artistas com - em seus nomes. Provavelmente nada de bom, mas traços simples (sem os espaços) devem ficar bem.

    
por Oli 07.08.2014 / 18:11
-1

se todos forem mp4 extension use this

  

renomeie "s / ^ Karaokê (. +) - (. +) - \ w {11} .mp4 $ / \ $ 2 - \ $ 1.mp4 /" * .mp4 -n

se você não tiver espaços antes e depois do símbolo - , caso contrário, use o exemplo @oli

@terdon meu erro ...

    
por AlexGreg 07.08.2014 / 18:05