Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Mão na Massa - Drupal

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Renomeando Múltiplos Arquivos

Colaboração: Otávio Penatti

Data de Publicação: 05 de Março de 2005

Já houve várias vezes em que precisei renomear vários arquivos de uma só vez e nos quais havia um certo padrão em seus nomes. Acredito que isto também já tenho ocorrido com muita gente além de mim.

Os arquivos tinham, por exemplo, o texto "-www.unicamp.br-" no nome e eu queria tirar esse pedaço de texto do nome dos arquivos ou então substituí-lo por algum outro texto.

Com o script abaixo foi possível fazer isso de forma simples:

  #!/bin/bash
  
  criterio=$1
  antigo=$2
  novo=$3
  
  if [ $# -lt 3 ] ; then
         echo "modo de usar: renomeia [criterio] [texto_a_ser_substituido] [texto_substituto]"
         exit 0
  fi
  
  for arq in *$criterio*
  do
         mv "$arq" "$(echo $arq | sed "s/$antigo/$novo/")"
  done

O laço "for" varre os arquivos do diretório atual baseado em um critério. Por exemplo, se quiser renomear os arquivos JPG do diretório, basta usar "jpg" como critério. Ou, se quiser renomear os arquivos que contenham "foto-" no nome, basta usar "foto-" como critério.

O parâmetro "antigo" é o texto que será substituído no nome do arquivo, como, por exemplo, "-www.unicamp.br-".

O parâmetro "novo" é o texto substituto, que será colocado no lugar do texto antigo. Se for vazio, basta usar '' (aspas simples).

Um detalhe importante no script são as aspas no comando:

  mv "$arq" "$(echo $arq | sed "s/$antigo/$novo/")"

Se as aspas não é possível renomear arquivos que contenham espaços no nome.

O script usa o sed para fazer a troca dos nomes e como o sed aceita expressões regulares, fica fácil fazer substituições de texto mais complexas.

Um exemplo de uso do script seria:

  ./renomeia jpg foto- ''

No exemplo, todos os arquivos que tenham jpg (no nome ou extensão) terão o texto "foto-" retirado do nome.

Otávio Penatti

Veja a relação completa dos artigos de Otávio Penatti

Stumble Upon Digg This Del.icio.us Twitter Recomendar este artigo a um amigo Entre em contato Formato PDF
Newsfeed RSS
Formato para impressão
StumbleUpon Digg Del.icio.us Twitter Recomendar Contato PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 2.97/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (452 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Submarino.com.br

Aprenda inglês em casa
Curso estruturado com o que existe de melhor e mais rápido em estratégias e técnicas de aprendizado para adultos.
Conheça as aulas experimentais.