Somar informações de diversos arquivos txt

1. Somar informações de diversos arquivos txt

vanessa menezes
vanessamenezes

(usa Ubuntu)

Enviado em 22/05/2015 - 11:05h

Bom dia caros,
preciso de uma ajuda. Tenho 3 arquivos txt com duas colunas de informações. A primeira é o número do canal e a segunda é a informação do sinal em cada canal (saída de sinal de eletrônica). Eu quero somar canal por canal correspondente de cada arquivo em uma saída de sinal total naquele correspondente canal. Exemplo.

arq1.txt arq2.txt arq3.txt
0 0.1234 0 0.1532 0 0.4032
1 1.2360 1 1.7890 1 0.6531
2 5.7865 2 1.4586 2 0.9332
3 5.7865 3 1.2360 3 0.6542
.
:
:
768 xxxxxx ........
0 xxxxxx .............
1 xxxxxx .............
2 xxxxxx ...........
3

Logo quero um arquivo de saída

arqsoma.txt

0 0.6798
1 3.6781
2 8.1783
3 7.6767
.
.
.

Os arquivos são muito grandes (mais de 10^6 linhas). A cada 768 canais se repetem novos 768 canais. Uma leitura que faça loops não é uma boa saída para esses arquivos tão grandes, pois o processo demora muito. Existe um meio de fazer com que a leitura seja mais rápida e a soma seja linha por linha correspondente.
Tentei

j=$((nlines+1)); ### número de linhas do arquivo

for ((i=1; i <= j ; i++)) do

sig_muon=$(cat sinalrecl_muon_$raio | head -$i | tail -1) ////aloca na variável o valor da linha i do arq1
sig_eletron=$(cat sinalrecl_eletr_$raio | head -$i | tail -1) ////aloca na variável o valor da linha i do arq2
sig_hadron=$(cat sinalrecl_hadron_$raio | head -$i | tail -1) ////aloca na variável o valor da linha i do arq3

sig_total=$(bc <<< $sig_muon+$sig_eletron+$sig_hadron)
echo "$i $sig_total" >> saida_sinalrecl_total_$raio
#done

Entretanto o arquivo tem duas colunas. Como pegar a informação apenas da segunda coluna.
Ficarei muito agradecida com qualquer ajuda.
Obrigada!




  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts