Somar números de um arquivo TXT

1. Somar números de um arquivo TXT

Paulo rafael
paulofsoft

(usa Ubuntu)

Enviado em 05/08/2012 - 15:35h

Boa tarde,
Sou novo no fórum e estou precisando de uma ajuda.

Tenho um arquivo (X.txt) com uma lista de nomes e números.
Exemplo:

João 10
Maria 20
Tião 60
José 5
Maria 50
João 3
Tião 70
.....

Bom, tenho que organizar esses dados em um novo documento (X2.txt) em ordem alfabética e sem nomes repetidos. Mas tenho que somar esses valores tipo: Tem o nome de maria 2 vezes, na primeira ela tem 20 na segunda vez ela tem 50, tenho que somar 20 + 50 e jogar em um único nome (Maria), isso para todos os nomes.

Ficará assim:

João 13
José 5
Maria 70
Tião 130

Se alguém poder me ajudar ficarei muito grato.

Agradeço a atenção de todos.

Obrigado.



  


2. Re: Somar números de um arquivo TXT

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 05/08/2012 - 16:30h

Ai vai um script para essa finalidade (além da soma de notas de alunos rsrs)


#!/bin/bash
# Por: Raimundo Portela
# Somar notas apatir de uma lista, independente da ordenação da mesma
# Exemplo de lista:
# Pedro 7
# Maria 6.5
# Pedro 8
# Maria 8
# Exemplo de uso:
# ./somaNotas.sh lista.txt
#=========================================================
ARQUIVO="$1"
SOMA=0
OLD=$( sort $ARQUIVO | head -n1 | cut -d' ' -f1 )
while read LINHA
do
NEW=$( echo $LINHA | cut -d' ' -f1 )
VALOR=$( echo $LINHA | cut -d' ' -f2 )
if [ "$NEW" = "$OLD" ]; then
SOMA=$( echo "$SOMA + $VALOR" | bc )
else
echo "$OLD $SOMA"
SOMA=$VALOR
fi
OLD="$NEW"
done < <( sort $ARQUIVO )
# para o ultimo registro
echo "$OLD $SOMA"



3. Solução em AWK

Júlio Hoffimann Mendes
julio_hoffimann

(usa Ubuntu)

Enviado em 05/08/2012 - 17:08h

Oi Paulo,

Em uma linha:

awk '{score[$1]+=$2} END{for (person in score) print person,score[person]}' scores.txt | sort 


Onde scores.txt é o arquivo original com os scores.

Por favor marque o tópico como resolvido e se possível a melhor resposta.

Abraço!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts