O comando rename na prática

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

[ Hits: 3.484 ]

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

Redirecionando saída de comando para arquivo com sudo

Empresa desenvolve CRM que funciona em Linux

Estatísticas completas do mercado de browsers

Desativando popups "O sistema detectou um problema no aplicativo" no Ubuntu

Crack Attack! Jogo para quem tem QI (estilo Tetris Attack)

Leitura recomendada

Wget: Verificando existência de arquivo remoto

Montando NTFS com Debian Live

Shell script para criar VMs no KVM

Docker Exec

Samba 4 - Corrigindo erro "LDAP error 50 LDAP_INSUFFICIENT_ACCESS_RIGHTS"

  

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