-----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 - [email protected]
..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-----