O comando rename na prática

Publicado por Fábio Berbert de Paula em 28/05/2020

[ Hits: 4.442 ]

Blog: https://fabio.automatizando.dev

 


O comando rename na prática



O comando rename é usado para renomear múltiplos arquivos de acordo com as regras que você criar. É desejável conhecer o básico de expressões regulares para dominar o comando.

Vou pegar como exemplo um diretório contendo arquivos *zip com nomes bem cabulosos:

cd meu-diretorio
$ ls *zip

Double Dragon (1989) (Activision) (PAL) [!].zip
Kung Fu Master (1984) (Activision).zip
Mario Bros. (1983) (Atari).zip
Nightmare (1983) (Sancho).zip
Volleyball (1983) (Starsoft) (PAL) [!].zip


Quero traduzir todas as letras maiúsculas em minúsculas:

rename 'y/A-Z/a-z/' *zip
ls *zip
double dragon (1989) (activision) (pal) [!].zip
kung fu master (1984) (activision).zip
mario bros. (1983) (atari).zip
nightmare (1983) (sancho).zip
volleyball (1983) (starsoft) (pal) [!].zip


Agora quero substituir todos os espaços em branco por "_":

rename 's/ /_/g' *zip
$ ls *zip

double_dragon_(1989)_(activision)_(pal)_[!].zip
kung_fu_master_(1984)_(activision).zip
mario_bros._(1983)_(atari).zip
nightmare_(1983)_(sancho).zip
volleyball_(1983)_(starsoft)_(pal)_[!].zip


E finalmente remover todos os caracteres especiais, mantendo somente as letras, dígitos, "_" e ponto:

rename 's/[^a-z0-9\.\_]//g' *zip
$ ls *zip

double_dragon_1989_activision_pal_.zip
kung_fu_master_1984_activision.zip
mario_bros._1983_atari.zip
nightmare_1983_sancho.zip
volleyball_1983_starsoft_pal_.zip


É possível combinar todas as regras que você deseja em um único comando, separando as regras por ";":

rename 'y/A-Z/a-z/ ; s/ /_/g ; s/[^a-z0-9\.\_]//g' *zip

Bônus

É possível criar um alias para corrigir nomes de arquivos. Adicione a seguinte linhas ao arquivo ~/.bashrc:

alias renomear="rename 'y/A-Z/a-z/ ; s/ /_/g ; s/[^a-z0-9\.\_]//g'"

Recarregue as configurações do bashrc (source ~/.bashrc) ou reinicie a sessão de usuário, em seguida você pode consertar o nome de seus arquivos digitando:

renomear Arquivo\ maLuCo.Qualqu3r

Até a próxima!

Outras dicas deste autor

Nginx - Redirecionando www para apenas o nome do domínio ou vice-versa

Busca Reversa no Mongo Shell

Problemas em diretório com milhares de arquivos [Resolvido]

Remover tags HTML com SED

Informações sobre o tempo em seu Desktop

Leitura recomendada

O comando sleep - dormir minutos, horas ou até dias, não apenas segundos

Suspendendo uma sessão do VIM

Conversão de arquivos EBCDIC para ASCII

Knoppix para deficientes visuais

Habilitando busca incremental de comandos no terminal GNU/Linux

  

Comentários
[1] Comentário enviado por maurixnovatrento em 28/05/2020 - 21:11h


Legal esse comando. Muito bom.

___________________________________
Conhecimento não se Leva para o Túmulo.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts