Veja, retirado da internet, não testei

#!/bin/bash

if [ $# -eq 0 ];
then
echo "Syntax: $(basename $0) file-name [command]"
exit 1
fi
FILES=$1
CMD=$2
for i in $FILES
do
# remove all blanks and store them OUT
OUT=$(echo $i | sed 's/ *//g')
if [ "$CMD" == "" ];
then
#just show file
echo $OUT
else
#else execute command such as mv or cp or rm
[ "$i" != "$OUT" ] && $($CMD "$i" "$OUT")
fi
done


Ricardo Stock
ricardost...@bol.com.br
http://www.sistemaonline.ddns.com.br
----- Original Message ----- From: "Antonio Olinto" <aolinto_li...@bignet.com.br>
To: "Lista de discussão do LoCoTeam Brasileiro" <ubuntu-br@lists.ubuntu.com>
Sent: Sunday, January 16, 2011 5:55 PM
Subject: [Ubuntu-BR] renomear arquivos em lote


Caros, estou com uma dúvida simples mas que não consegui resolver.


Quero mudar o nome de todos os arquivos de um diretório que começam com
09 para 11. Ex.: 090114-01.jpg para 110114-01.jpg

Pelo que lembro do MSDOS seria algo como rename 09* 11*

Tentei o comando mv 09* 11* mas recebi a mensagem de que 11 não é um
diretório (http://www.computerhope.com/issues/ch000846.htm). Tentei
também algo com a função rename
(http://www.cyberciti.biz/tips/renaming-multiple-files-at-a-shell-prompt.html)
mas não encontrei páginas simples que explicassem sua sintaxe. Cheguei
até a regra regex e depois em um manual Perl.

Abraços e obrigado,

Antônio

--
Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece

Lista de discussão Ubuntu Brasil
Histórico, descadastramento e outras opções:
https://lists.ubuntu.com/mailman/listinfo/ubuntu-br

--
Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece

Lista de discussão Ubuntu Brasil
Histórico, descadastramento e outras opções:
https://lists.ubuntu.com/mailman/listinfo/ubuntu-br

Responder a