-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 02/21/2010 07:35 PM, Alexandre Gorges wrote:
> Lista,
> Recebo alguns dados separados por | e da forma que eu fiz está funcionando
> sem nenhum problema. Meu interesse é mais para saber se existe uma forma
> mais fácil de executar a operação.
> 
> Meu script
> 
> Recebo dados os dados:
> 
> Exe|zip|wmv ....
> 
> #trocar | por espaco
> troca_pipe(){
>         echo "$*" | tr '|' ' '
> }
> 
> anexos="$(troca_pipe $2)"
> 
> Passa os dados para exe zip wmv ....
> 
> echo "$anexos" | awk '{ OFS = "\n"; $1 = $1; print $0}' | while read ext; do
>                        ..... Insere os dados com sed em um arquivo.
> done

Uma coisa que eu acho bárbara é o IFS. Digamos que você faça algo assim

OLDIFS=${IFS}
IFS="|"

echo "exe|zip|wmv" | while read EXT ; do
        echo $EXT
done
IFS=$OLDIFS


Além disso, imaginando que você tenha um arquivo com vários registros separados 
por |, você pode fazer algo assim:

OLDIFS=${IFS}
IFS="|"

cat arquivo | while read LINHA ; do
        set - $LINHA
        echo $1
        echo $2
        echo $3
done
IFS=$OLDIFS

O set - vai separar a sua linha em campos automagicamente.




- -- 

Um abraço

.0. MrBiTs - mrbits....@gmail.com
..0 GnuPG  - 
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x6EC818FC2B3CA5AB
000 http://www.mrbits.com.br


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iQEcBAEBCAAGBQJLgbpmAAoJEG7IGPwrPKWra+oH/3yVrONc+p+pDIv0cubNYYNx
AoF+fMsxM/Kmng+qHTMuehvmqbKdMI+CV8jc0vVxHdySfQne28JO8Q1gu4nDYcYO
iPLqJOPhHzhxBhGZwNb1tSj/BaaSYWZ3oNTE/KikaPxXMjpAOrus5H7K5q7QmLZt
3qjjN7rHoHee4H94vkB/G/onWgd5d+dudGOHBJuAwGajAqlz0Cj7lIfhpB57zq/g
5P2oOiapMjhUiwCpgxodR4qQgCEHj/r6mbKkX6tcRsNd4Y335s05CpJnzpuxTkI2
j7dwdXjnJHCDYUrH87bBZGmVNtz/70AyzmoMy8/0+V25LS2vOeDFiP9QEfbQaD8=
=iV29
-----END PGP SIGNATURE-----

Responder a