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

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

Re: [shell-script] soma-com-awk!


From: Ricardo Acosta
Subject: Re: [shell-script] soma-com-awk!
Date: Tue, 28 Nov 2006 13:55:23 -0200

Roberto, obrigado pela dica!

No entanto esta solução seria semelhante a que apresentei com o AWK!
nao escaparia do problema  de ter que  especificar todas as colunas do
meu arquivo!

fiz o seguinte comentário na msg inicial:
sei fazer desta forma, mas a medida que o numero de coluna aumenta.
torna-se inviavel!
pois trabalhos com arquivos em que o numero de colunas varia de
momento em momento.
imaginem este numero varinado entre 50 - 70 colunas!

de qualquer forma. obrigado pela dica!
adotei as sugestoes indicadas no email anterior!

[]s
acosta


2006/11/28, Roberto Alves <address@hidden>:
Ricardo,
eu tenho um script que usei um truque que o Julio nos ensinou mas é para
arquivos onde o numero de colunas é fixo.
Mas sei que voce pode mudar se quebrar um pouco a cabeça.
É mais ou menos assim:

while :
       read COL1 COL2 COL3
          do
              COLUNA1=$(( "$COLUNA1" + "$COL1" ))
              COLUNA2=$(( "$COLUNA2" + "$COL2" ))
              COLUNA3=$(( "$COLUNA3" + "$COL3" ))
          done < /arquivo/de/entrada

echo "Coluna1 tem $COLUNA1 no seu total"
echo "Coluna5 tem $COLUNA2 no seu total"
echo "O total de bytes é: $COLUNA3 em kbytes"

Nesse caso o while usa o separador padrao para ler as colunas e você já as
joga nas variaveis.

Na verdade eu tinha um arquivo bagunçado onde separei só as colunas que
queria e tratei no final uma coisa bem mais simples de se entender, usando
cut, tr, e outras coisas mas a idéia é essa.

abraços,

Roberto Alves






On 11/27/06, Ricardo Acosta <address@hidden> wrote:
>
>   Ola Camaradas,
> bom dia!
>
> como fazer pra somar colunas com o awk.
> sem ter q declarar coluna por coluna!
> teria como fazer uma matriz indexada?
>
> vejam o exemplo
> ...
> acosta@clima: ~$ cat dados.dat
> COL1 COL2 COL3 COL4
> 0001 0011 0111 1111
> 0002 0012 0112 1112
> 0003 0013 0113 1113
> 0004 0014 0114 1114
> 0005 0015 0115 1115
> ...
>
> sei fazer desta forma, mas a medida que o numero de coluna aumenta.
> torna-se inviavel!
> pois trabalhos com arquivos em que o numero de colunas varia de
> momento em momento.
> imaginem este numero varinado entre 50 - 70 colunas!
>
> ...
> acosta@clima: ~$ cat soma.sh
> #!/bin/bash
> awk '{ sum1 += $1
> sum2 += $2
> sum3 += $3
> sum4 += $4
> }
> END{print sum1, sum2, sum3, sum4}
> ' dados.dat
> ...
> o resultado que obtenho está certo, mas alguem saberia sugerir outra
> forma de fazer isso?
> mesmo que nao seja com o AWK!
>
> ...
> acosta@clima: ~$ ./soma.sh
> 15 65 565 5565
> ...
>
> []s
> acosta
>
> --
> __________________________
> Ricardo Acosta
> Laboratório de Clima e Biosfera
> Depto. de Ciências Atmosféricas
> Universidade de São Paulo
>
> Dê emoção à sua vida:
> Faça pipocas com a panela aberta!
>
>


[As partes desta mensagem que não continham texto foram removidas]



---------------------------------------------------------------------
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
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil


Links do Yahoo! Grupos





--
__________________________
Ricardo Acosta
Laboratório de Clima e Biosfera
Depto. de Ciências Atmosféricas
Universidade de São Paulo

Dê emoção à sua vida:
Faça pipocas com a panela aberta!


reply via email to

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