shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Problemas com array shell


From: Thobias Salazar Trevisan
Subject: Re: [shell-script] Problemas com array shell
Date: Fri, 24 Jan 2003 10:34:01 -0200 (EDT)

        Oi Andre,

> deejah@freud:~/backup/scripts/teste$ echo ${var[@]}
> Arquivo Espacado.mp3;Nome filme.avi
> 
> Então beleza... o ";" delimita o nome do arquivo. Entao posso separá-los 
> depois da seguinte forma:
> 
> deejah@freud:~/backup/scripts/teste$ echo ${var[@]} | sed -e 's/;/\n/g'
> Arquivo Espacado.mp3
> Nome filme.avi
> 
> Pronto... só que os arquivos ainda estão com o nome espaçados... o 
> grande problema é o seguinte: quero usar uma linha inteira dessa depois 
> num laço for.... assim:
> 
> for file in `echo ${var[@]} | sed -e 's/;/\n/g'`; do
>     ls -l $file
> done
> 
> Só que acontece que ao invés de pegar a linha inteira, ele vai pegar 
> cada palavra separada, assim:
> 
> Arquivo
> Espacado.mp3
> Nome
> filme.avi
> 
> Eu queria que ele usasse a linha inteira no for... alguém sabe como?

Eh que o for usa o IFS default que eh <space><tab><newline>. 
Assim eh so mudar o seu valor. Ah, nao precisa nem usar o sed. olhe:

$ var=(Arquivo Espacado.mp3\;Nome filme.avi)
$ IFS=";"
$ for file in `echo "${var[@]}"`;do echo $file;done
Arquivo Espacado.mp3
Nome filme.avi

HTH,
Thobias.
-- 
echo '174211037780573367178324479102831469900625931774830659437930762P' | dc
-------
Thobias Salazar Trevisan <address@hidden>
Home Page - http://www.cos.ufrj.br/~thobias

____________________________
|                          
| Against - HTML Mail      
| Against - MS ATTACHMENTS 
|                          
----------------------------



reply via email to

[Prev in Thread] Current Thread [Next in Thread]