O comando rename na prática

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

[ Hits: 3.579 ]

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

Vim - configuração de acordo com o tipo de arquivo

Vim - substituição de caracteres especiais do Windows

Como passar parâmetros para um alias no Bash

RTV - Acessando o Reddit via terminal

Configurando um VirtualHost no Apache

Leitura recomendada

Criando o comando grub-update no Fedora

RMVB para AVI no Linux

Copiando CDs e DVDs pelo terminal com facilidade

Geração automática de relatórios do Sarg

Bash Completion no APT

  

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