como adicionar dois números juntos usando o bash

1

Eu tenho o seguinte arquivo:

lab1:/etc/scripts# cat /tmp/tmp.PGikhA/audit.txt                                
   344 server1                                                                            
     1 server2

Eu quero poder adicionar os números de cada linha juntos - portanto, neste caso, quero adicionar 344 + 1 e terminar com 345.

Até agora, tenho os seguintes passos:

lab-1:/etc/scripts# cat /tmp/tmp.PGikhA/audit.txt |awk '{print $1}'              
344                                                                                                    
1                     

Mas não sei como adicioná-los juntos. Eu sei que posso usar apenas a sintaxe $ a + $ b, mas como faço para que o 344 e o 1 se tornem variáveis separadas para fazer isso?

Obrigado.

EDIT 1

Estou recebendo dois valores retornados, em vez de apenas o total. Não consigo ver o que estou fazendo de errado:

lab-1:/etc/scripts# cat /tmp/tmp.jcbiih/audit.txt | awk '{print $1}' | awk '{ sum+=$1} {print      
sum}'                                                                                                                    
344                                                                                                                      
345                                                                                                                      
lab-1:/etc/scripts# cat /tmp/tmp.jcbiih/audit.txt  | awk '{ sum+=$1} {print sum}'                  
344                                                                                                                      
345                                                                                                                      
    
por dot 14.03.2018 / 20:02

1 resposta

5

Você pode fazer sua matemática no awk facilmente. Aqui está um exemplo:

awk '{ total+=$1 } END { print total }'

Se você realmente quisesse usar o bash, você poderia usar um loop simples para ler uma linha de cada vez e adicioná-la:

count=0 
while read -r number _; do # put the first column in "number" and discard the rest of the line
    count=$(( count + number )) 
done < /tmp/foo
echo $count
    
por 14.03.2018 / 20:06