como renomear em lote arquivos no terminal - mover texto no nome do arquivo do final do nome do arquivo para a frente

0

Eu comecei recentemente usando o wget para baixar arquivos.

Estou usando o ubuntu 16 mate para manipular meus arquivos.

Eu crie URLs personalizadas para incluir informações específicas que eu quero salvar no nome do arquivo baixado da seguinte forma:

  http://website.com/file.txt?title_Three_little_pigs_user_spinach_

Se eu baixar a URL usando o Firefox e o Downthemall usando máscaras de renomeação para adicionar strings de consulta ao nome do arquivo, posso conseguir:

  Three_little_pigs_user_spinach_file.txt

Se eu baixar os mesmos URLs usando o wget (que parece não suportar o mascaramento de renomeação), acabo recebendo:

  file.txt@title_Three_little_pigs_user_spinach_

Existe uma maneira de renomear arquivos em lote da seguinte maneira:

Antes:

  file.txt@title_Three_little_pigs_user_spinach_

Depois:

  title_Three_little_pigs_user_spinach_file.txt

Eu quero mover o texto após o @ para o início e depois remover o @.

Eu tenho muitos arquivos que eu quero renomear no terminal no Ubuntu - se eu pudesse adicioná-lo a um script bash, seria fantástico.

Eu corro o Ubuntu e o Windows e não encontrei um programa do Windows que renomeie os arquivos dessa maneira.

Obrigado antecipadamente.

    
por speld_rwong 25.06.2017 / 19:33

1 resposta

0

O Ubuntu 16.04 deve vir com o original% -controlado e o seu novo substituto prename , sendo que ambos devem funcionar com uma expressão de substituição padrão semelhante a rename

prename -n 's/(.*)@(.*)/$2$1/' *@*

ou

rename -n 's/(.*)@(.*)/$2$1/' *@*

Você também pode instalar sed do repositório e usar

mmv -n "*@*" "#2#1"

Em todos os casos, o mmv é um sinalizador sem operação para testes - remova-o assim que tiver certeza absoluta de que ele fará o que quiser

    
por 25.06.2017 / 19:53

Tags