Pular para o conteúdo

Como somar todos os números contidos num arquivo texto

Dica publicada em Shell Script / Introdução
Fábio Berbert de Paula fabio
Hits: 9.257 Categoria: Shell Script Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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:

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
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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


O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Python3 demorando a compilar numpy e/ou pandas [Resolvido]

Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux

TEG - Clone do WAR de tabuleiro para GNU/Linux

MySQL - Got error 28 from storage engine [Resolvido]

Vim - criando padrões personalizados de syntax highlight

Tutoriais de Shell Scripts

Java no Ubuntu - Parâmetros iniciais do Tomcat (parte 3)

Criando e utilizando uma "biblioteca de funções"

Três formas de executar HTTP Request em Shell Script

Listando os 5 maiores subdiretórios no GNU/Linux

#1 Comentário enviado por SMarcell em 13/06/2017 - 14:01h
Contribuindo com a dica.

# 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

Contribuir com comentário

Entre na sua conta para comentar.