Como somar todos os números contidos num arquivo texto
Dica publicada em Shell Script / Introdução
Como somar todos os números contidos num arquivo texto
Dado um arquivo texto com um número por linha, quero como resultado a soma de cada linha.
Conteúdo do arquivo:
Para somar os números usaremos os comandos paste e bc:
paste -sd+ arquivo | bc
1480
Onde:
Para maiores informações, consulte:
man paste
$ man bc
Conteúdo do arquivo:
65
43
58
48
23
5
24
10
41
93
86
20
70
30
94
90
96
35
34
71
18
61
87
8
32
37
99
45
13
44
43
58
48
23
5
24
10
41
93
86
20
70
30
94
90
96
35
34
71
18
61
87
8
32
37
99
45
13
44
Para somar os números usaremos os comandos paste e bc:
paste -sd+ arquivo | bc
1480
Onde:
- -s significa processar o arquivo serialmente
- -d+ significa adicionar o delimitador "+" entre cada uma das linhas
- bc é nossa calculadora em modo texto
Para maiores informações, consulte:
man paste
$ man bc
# Com o Sed (não é lá muito elegante... rsrsrs)
$ sed ':a;N;$!ba;s/\n/+/g' arquivo | bc
1480
# AWK
$ awk '{ soma += $0 } END { print soma }' arquivo
1480