No dia 06/11/2007 às 23:37,
[EMAIL PROTECTED] escreveu:

> Quem puder me ajudar, não entendo nada de shell script, eu gostaria de um que
> pegasse os meus arquivos de fotos de um pasta assim:
> 
> DSCI001.JPG
> DSCI002.JPG
> DSCI005.JPG
> DSCI006.JPG
> (reparem que eu apaguei o DSCI003.JPG)
> 
> e deixasse assim:
> 
> 001.jpg
> 002.jpg
> 003.jpg
> 004.jpg

O script abaixo converte uma seqüência de arquivos para a forma 1.ext,
2.ext, ..., 9.ext. Mas se por exemplo há mais de 10 arquivos, ele faz
01.ext, 02.ext, ..., 99.ext. E assim por diante.

Se quiser um número fixo de zeros à esquerda independente do número de
arquivos, modifique a variável CASAS, por exemplo, "CASAS=3" deixará do
jeito que ilustrou o problema, isto é, 001.ext, ..., 999.ext.

Copie o script em um arquivo, torne-o executável e o chame assim: 

  ./script *.JPG

########################################################################
#!/bin/sh

TOTAL=$#
CASAS=${#ARQUIVOS}

N=0
for i in $*; do

  N=$(($N+1));
  mv $i $(printf %0${CASAS}d $N)$(echo $i | sed -n 's/^[^\.]*\(\..*$\)/\1/p');

done
########################################################################

-- 
Douglas Augusto

$ 13:58:16 up 22:14, 0 users, load average: 0.22, 0.30, 0.16


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Responder a