tente assim :

fotos=( $(ls *.jpg | sed 's/.jpg//g') )

echo ${fotos[0]}   #primeiro elemento
echo [EMAIL PROTECTED]  #todos os elementos
echo [EMAIL PROTECTED] # numero de elementos

Podes usar as variaveis $1 .. $N ( alias isso pode recair em um for
muito mais simples )

set - $(ls *.jpg | sed 's/.jpg//g')

for i ; do    # sem o "in lista" o for lê dos parametros $1 ... $N
   echo "a foto da vez eh a ${i}.jpg"
done

[]´s Tiago

On 8/28/07, Pedro Pardini <[EMAIL PROTECTED]> wrote:

>
> Oi, pessoal!
>
>  Eu tenho uma pasta onde são arquivadas as fotos *.jpg do pessoal
>  cadastrado em meu banco de dados.
>  Acontece que eu preciso separá-los por categorias de cargos, em pastas
>  específicas (categoria1, categoria2, categoria3... ... ...)
>
>  Cada foto é nomeada assim: "identificador-no-banco-de-dados.jpg" ou seja
>  1.jpg, 1723.jpg 59.jpg, 721.jpg ...
>
>  O início do script está fácil - tanto faz por cut ou sed, obtenho em uma
>  variável, uma lista de todos os identificadores sem o ".jpg" mais ou
>  menos assim:
>  fotos=$(ls *.jpg | cut -d. -f1)      ou
>  fotos=$(ls *.jpg | sed 's/.jpg//g')
>
>  Aí minha variável $fotos é uma matriz com um conteúdo mais ou menos
>  assim:
>  echo $fotos
>
>  16 1 21 26 2 30 3 40 46 48 5 63 64 66 67 6 73 79 83 84 99
>
>  O problema é justamente como tratar cada item isoladamente, para poder
>  então obter o resultado do banco de dados e mover a foto para a pasta
>  correspondente.
>
>  Valeu!!!
>
>                    



-- 
Tiago B Peczenyj
Linux User #405772

http://peczenyj.blogspot.com/

Responder a