shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Multi rename


From: Dorneles Treméa
Subject: Multi rename
Date: Fri, 04 Jul 2003 16:51:06 -0300
User-agent: Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.3.1) Gecko/20030618 Debian/1.3.1-3

Oi pessoal,

agora a pouco um colega surgiu com a seguinte dúvida:

Como renomear diversos arquivos ao mesmo tempo, mudando
apenas um prefixo no nome dos arquivos?

Exemplo:

$ ls
ABC_123.a ABC_123.b ABC_123.c

Passar a ficar:

$ ls
XYZ_123.a XYZ_123.b XYZ_123.c

Bom, eu escrevi o seguinte código:

#!/bin/bash

if [ ! $3 ]; then
  echo "Sintaxe: `basename $0` retirar incluir arquivos"
  echo "onde:"
  echo "  retirar     String a retirar do começo do nome dos arquivos"
  echo "  incluir     String a incluir no começo do nome dos arquivos"
  echo "  arquivos    Arquivos a renomear"
  exit
fi

retirar=$1
incluir=$2
shift;shift
arquivos=$@

tamanho=${#retirar}

for arquivo in $arquivos; do
  sufixo=${arquivo:$tamanho}
  mv $arquivo $incluir$sufixo
done

x.x.x

No exemplo acima, bastaria chamar:

./rename.sh ABC XYZ *

Mas eu achei que o troço ficou meio tosco... :-(

Mestre Júlio, grande Aurélio e demais amigos, alguém
teria algum pitaco a acrescentar? ;-)

T+

-- 

Dorneles Treméa
Caxias do Sul - RS - Brasil
+55 54 9114 9312 - UIN: 2413568
X3ng Web Technology <http://www.x3ng.com.br>

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS/IT d- s:->: a23 C+++ UBL++++$ P--- L++ E-- W+++
N++ o? K? w+ O M+ V-- PS+ PE- Y-- PGP++ t+ 5 X++ R+
tv+ b(++) DI+ D++ G+>+++ e++>++++ h---- r+++ y+++**
------END GEEK CODE BLOCK------



[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]