I eine Reihe von Daten, wieSchlüsselwertpaare in awk
915 1.1.1.1 Sep 21 06
2478 2.2.2.2 Sep 21 07
1960 2.2.2.2 Sep 21 08
500 1.1.1.1 Sep 21 09
der gewünschte Ausgang ist wie folgt:
1.1.1.1 1415
2.2.2.2 4438
D.h. Addieren Sie die Zahlen in der ersten Spalte. Ich würde gerne awk
Textverarbeitungssprache verwenden, um das gleiche zu erreichen. Meine Lösung dafür war:
echo " 915 1.1.1.1 Sep 21 06
2478 2.2.2.2 Sep 21 07
1960 2.2.2.2 Sep 21 08
500 1.1.1.1 Sep 21 09" | awk '{arr[$2]=$1; if($2 in arr) {val = arr[$2] + $1; arr[$2]=val}} END {for (i in arr) {print i, arr[i]}}'
Dies scheint nicht zu funktionieren. Ich bin mir nicht sicher, was ich falsch gemacht habe.
'arr [$ 2] = $ 1; Wenn ($ 2 in arr) 'in dieser Reihenfolge Bedingung immer wahr sein wird und Sie die gleiche Zahl zweimal hinzufügen. – karakfa
@CharlesDuffy: Danke für die Antwort. Das würde ein One-Liner sein. Ich plante kein Skript um das selbe, und ich schärfte meine awk-Kenntnisse *, die im Moment nicht viel ist *. – rickydj