Mudando a extensão de vários arquivos

Publicado por Luiz Eduardo Santos de Carvalho (última atualização em 25/11/2011)

[ Hits: 20.518 ]

Download muda_extensao.sh




Eu estou começando no mundo dos scripts e para praticar resolvi fazer um que mudasse a extensão de vários arquivos de um mesmo diretório.

Fiz de diversas formas, até que cheguei descobri o basename que me deu tudo que eu precisava.

O Código está logo abaixo para quem quiser copiar, sugerir e opinar.

Ainda quero melhorar esse script, principalmente a mensagem que fica aparecendo quando não são encontrados arquivos.
Valeu! ;)

  



Esconder código-fonte

#/bin/bash
#
#
# Script que altera a extensão de vários arquivo de uma vez.
#
#
#
#   Eduardo Carvalho, Novembro de 2011

EXTENSAO_ENTRADA="$1"      # Atual extensão dos arquivos
EXTENSAO_SAIDA="$2"      # Nova extensão que terão os arquivos
NOME=""            # Nome do arquivo, sem extensão
NOVO_NOME=""         # Nome do arquivo após ser renomeado

if [ $# -ne 2 ]; then
   echo "$(basename "$0"): erro de operandos"   
   #TODO Try `basename --help' for more information.
   exit 1
fi

#--- RENOMEIA ---#
for ARQUIVO in *."$EXTENSAO_ENTRADA"
do
   NOVO_NOME=$(basename "$ARQUIVO" "$EXTENSAO_ENTRADA")"$EXTENSAO_SAIDA"
   mv "$ARQUIVO" "$NOVO_NOME" && echo " $ARQUIVO -> $NOVO_NOME"
done

Scripts recomendados

NFS Mounter

Mapear sua rede.

Decodificando e gravando cds de áudio

calculadora

Case em shell script


  

Comentários
[1] Comentário enviado por eldermarco em 25/11/2011 - 10:00h

Existe também uma maneira de fazer isso usando o comando rename. Por exemplo, suponhamos que você quer mudar a extensão de arquivos .png para .jpg porque estão erradas. Então:

$ rename .png .jpg *.png

Muda tudo =]

[2] Comentário enviado por vitinho217 em 07/07/2014 - 10:32h


[1] Comentário enviado por eldermarco em 25/11/2011 - 10:00h:

Existe também uma maneira de fazer isso usando o comando rename. Por exemplo, suponhamos que você quer mudar a extensão de arquivos .png para .jpg porque estão erradas. Então:

$ rename .png .jpg *.png

Muda tudo =]


rename é exelente para essa tarefa !


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts