O mais seguro é sempre definir a linguagem que o sistema irá utilizar:
$ LANG=C awk .......
Fábio David Batista
address@hidden
http://nerd-o-matic.blogspot.com
On Wed, 02 Feb 2005 23:50:04 -0200, Marcelo G. Dias <address@hidden> wrote:
Galera veja só ...
o campo 16 do arquivo teste.txt tem ...
::25.90::
::236.00::
::71.06::
::100.00::
::25.90::
Todos tem no campo 8 (01|03), então passa ser visto como números
negativos e no campo 13 todos atendem o mesmo valor ~ /03003/, desta
forma permitindo a soma {SOMA += $16}, e imprimindo somente o total ao
final, só que as casas decimais não são somadas dando o resultado de R$
-457,00 em vez de R$ -458,86 :-(
veja script ...
$ awk -F"::" '{if ($8 ~ /01|03/) $16 = -$16} {if ($13 ~ /03003/) {SOMA
+= $16}} END {printf "%10.2f \n", SOMA}' teste.txt
$ -457,00
Ps.: Uma coisa que observei é que a versão "GNU Awk 3.1.4" a saída das
casas decimais são separadas por virgula e não por ponto como no padrão
inglês, e meu arquivo esta separado por ponto e sem separador de milhar.
Ai vai a pergunta :
É possível subistituir no awk o ponto por virgula somente no campo 16,
para fazer a soma, já que o mesmo engloba as funções da família
[ef]?grep e sed ???
--
\|||||/
(o o) *** Seja Livre e evite a pirataria use GNU/Linux ***
--( )-0ooo-------------------------------------------------------
| MARCELO GIOVANNI DIAS - WEBMASTER
| E-mail: address@hidden - Site : http://www.boletim.net
-----------------------------------------------------------------
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Yahoo! Grupos, um serviço oferecido por:
PUBLICIDADE
________________________________
Links do Yahoo! Grupos
Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
Para sair deste grupo, envie um e-mail para:
address@hidden
O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do
Yahoo!.
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Links do Yahoo! Grupos