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]