[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Outra forma de executar.
From: |
MrBiTs |
Subject: |
Re: [shell-script] Outra forma de executar. |
Date: |
Sun, 21 Feb 2010 19:57:42 -0300 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9pre) Gecko/20100217 Lightning/1.0b1 Shredder/3.0.3pre |
-----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 - address@hidden
..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-----