Fala Roberto,
se soubermos previamente a qtd de colunas (e passando esta qtd como
parâmetro), creio que para fazer o pretendido sem usar awk e sed, o melhor
seria:
for ((i=1; i<=$1; i++)); { echo Soma da coluna $i = $(cut -f$i -d" " num |
paste -sd+ | bc); }
Que tb é um one-liner.
Para somar lin
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.
>tor
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
ola.
Estranho, na versão aqui em casa funcionou, talvez seja a versão do gawk.
Em todo o caso esta forma deve ser mais eficiente do que fazer um if a cada
iteração:
function sizeof(a) { c=0; for(e in a) c++; return(c) }
Outra forma é deixar que o comando sort 'arrume' a saida, mas obrigado pelo
Valeu a dica!
funcionou perfeitamente!
[]s
acosta
2006/11/27, edjunior <[EMAIL PROTECTED]>:
> hey,
>
> tiago, achei seu script bem interessante, porém encontrei um pequeno
> problema quando tentei executá-lo. Não tenho certeza disso, mas creio
> que a função de 'length' não funciona corretamente
hey,
tiago, achei seu script bem interessante, porém encontrei um pequeno
problema quando tentei executá-lo. Não tenho certeza disso, mas creio
que a função de 'length' não funciona corretamente pra array,
retornando um determinado erro ("... fatal: attempt to use array
`soma' in a scalar context"
Sim, a melhor opção é fazer, em awk, usando vetores. Em awk, uma
variavel criada tem valor 0. Matrizes são criadas dinamicamente, e vc
pode adicionar novas posições em qq momento.
ex:
a[1] = 10
a[134723984] = 90
a["xxx"] = -1
Veja só como ficaria
awk '{
split($0,dados)
for(i in dados){
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
...
[EMAIL PROTECTED]: ~$ cat dados.dat
COL1COL2COL3COL4
000100110111
0002001201121112
00030013