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

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

Re: [shell-script] Somar valores em arquivos diferente


From: Tiago Peczenyj
Subject: Re: [shell-script] Somar valores em arquivos diferente
Date: Mon, 17 Nov 2014 18:47:44 -0200

putz... agora eu percebi que a chave tem 2 campos... faça isso e teste

awk '{ x[$1 " " $2 ] += $3 } END { for(i in x) { print x[i ], i } }'

2014-11-17 18:20 GMT-02:00 Tiago Ribeiro address@hidden [shell-script] <address@hidden>:
 

Tiago, boa tarde, rodei na mão e o resultado foi bem estranho, já respondendo ao Adolfo, os nomes dos arquivos são UUIDs e não
arq1, arq2, arqN.

awk '{ x[$1] += $2 } END { for(i in x) { print x[i ], i } }' 1ed60b79-8fd0-11e1-9299-00022ad57aa3 47cab244-8464-11e3-b1a2-001aa0197ea4
2880 2014-11-10
6624 2014-11-11
6624 2014-11-12
6624 2014-11-13
3330 2014-11-14
3312 2014-11-15
3292 2014-11-16
0 2014-11-17


Adolfo, não sei se por estar rodando em um FreeBSD, não está aceitando o paste vindo do cut -f3 -d” “ | 
vou analisar com mais calma aqui.

Já agradeço as ajudas de uma vez, eu estava pensando em coisas mirabolantes, me parece que a
solução vai ser um pouco mais simples (curta) que eu imaginava.


Em 17/11/2014, à(s) 17:56, Tiago Peczenyj address@hidden [shell-script] <address@hidden> escreveu:



Esqueci

awk '...' arq1.txt... arqN.txt > soma.txt 

Em 17/11/2014 17:55, "Tiago Peczenyj" <address@hidden> escreveu:

Use awk para somar e guardar os valores em um array 

$ awk '{ x[$1] += $2 } 
END { for(i in x) {
print x[i ], i 
}
}'

Em 17/11/2014 17:47, "Tiago Ribeiro address@hidden [shell-script]" <address@hidden> escreveu:
 

Boa tarde,

Estou tentando fazer um script que some o terceiro campo de N arquivos, são arquivos simples, 
mas confesso que não estou sabendo nem muito por onde começar.

o conteúdo dos arquivos são assim:

# cat arq1.txt
2014-11-16 23:30 10
2014-11-16 23:35 10
2014-11-16 23:40 11
2014-11-16 23:45 11
2014-11-16 23:50 11
2014-11-16 23:55 11
2014-11-17 00:00 11

# cat arq2.txt
2014-11-16 23:30 5
2014-11-16 23:35 5
2014-11-16 23:40 7
2014-11-16 23:45 8
2014-11-16 23:50 10
2014-11-16 23:55 10
2014-11-17 00:00 10

#cat arqN.txt
2014-11-16 23:30 N
2014-11-16 23:35 N
2014-11-16 23:40 N
2014-11-16 23:45 N
2014-11-16 23:50 N
2014-11-16 23:55 N
2014-11-17 00:00 N

onde 
DATA HORA VALOR - são separados por espaço, isto não interfere, posso mudar para ; | ou qualquer
outra coisa.

terei vários arquivos com estes conteúdos, quero somar o campo 3 do arquivo 1 + 2 + N e gerar um 
novo com DATA HORA (SOMA de todos os arquivos).

# cat soma.txt
2014-11-16 23:30 X
2014-11-16 23:35 X
2014-11-16 23:40 X
2014-11-16 23:45 X
2014-11-16 23:50 X
2014-11-16 23:55 X
2014-11-17 00:00 X

--
www.bsdjf.com.br








--
Tiago B. Peczenyj
Linux User #405772

http://about.me/peczenyj

reply via email to

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