2017-06-22 2 views
-1

Ich habe eine Datei, die darunter durch Komma getrennte Zeilen enthält;Lesen und Summen von Zeilen in bash

filename.txt

usernameA,10,10 
usernameB,20,20 
usernameA,10,10 
usernameB,20,20 
usernameC,10,10 

Ich möchte nur die Datei analysieren und Zahlen von Benutzernamen hinzufügen, wenn mehrere Male auftritt, so sollte das Ergebnis sein;

usernameA=40 
usernameB=80 
usernameC=20 

Wie kann ich dieses Ergebnis mit Bash-Skript erreichen?

Danke,

+0

Was haben Sie versucht? Wir haben Tonnen von Fragen wie diese – fedorqui

+0

Ich wette, es gibt. Wenn Sie einen Gefallen tun, zeigen Sie mich auf den erwähnten Link, den ich nicht herausfinden konnte und lösche die Frage :) – linuxman

+0

Versuchen Sie 'awk' zu verwenden – Tamar

Antwort

0
$ awk -F, '{a[$1]+=$2+$3}END{for(x in a)print x "=" a[x]}' file 
usernameA=40 
usernameB=80 
usernameC=20 

Diese für das gegebene Beispiel funktioniert.

+0

ist es möglich, in einem Array zu verwenden? Also muss ich die Datei mithilfe von Arrays analysieren und dann das Ergebnis als eine Variable in bash finden. Das reale Bild ist nicht so einfach. – linuxman

+0

ist es möglich. Du kannst meine Antwort erweitern. – Kent

Verwandte Themen