[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]
- Multi rename,
Dorneles Treméa <=