|
|
|
|
Google-Website
|
|||||||
| Foren | Registrieren | Blog | Man-Seiten | Forum-Regeln | Links | Alben | FAQ | Benutzer | Kalender | Suche | Die heutige Beiträge | Alle Foren als gelesen markieren |
| Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier. |
![]() |
|
|
Thread Tools | Suche diesen Thread | Rate Thread | Anzeige-Modi |
|
|||
|
Awk: Summieren von Werten mit der Gruppe Kriterien
Hi Guys,
Ich habe eine Text-Datei mit ";" wie Separator F1, F2, F3, F4, F5 444, 100041, IT, GLOB; 1800000000 444, 100041; TM; GLOB; 1000000000 444;10300264; IT; GLOB;2000000000 444;10300264; IT;GLOB;2500000000 Ich habe die cullums F5 für gleiche F2 und F3 Summe collums Das Ergebnis muss: 444, 100041, IT, GLOB; 1800000000 444, 100041; TM; GLOB; 1000000000 444;10300264;IT; GLOB;4500000000 Vielen Dank für Ihre Unterstützung. Grüße Gianluca |
| Sponsored Links |
|
|
|
|||
|
Code:
awk -F';' '{A[$2$3]=$1FS$2FS$3FS$4;B[$2$3]+=$5} END{for (i in A) printf "%s%.0f\n",A[i]FS,B[i]}' infile |sort -nt';'Code:
444;100041;IT;GLOB;1800000000 444;100041;TM;GLOB;1000000000 444;10300264;IT;GLOB;4500000000 -oder - Code:
awk -F';' '{B[$2$3]+=$5;$5="";A[$2$3]=$0} END{for (i in A) printf "%s%.0f\n",A[i],B[i]}' infile |sort -n|tr ' ' ';'Zuletzt bearbeitet von Scrutinizer; am 11-05-2009 02:06 PM.. |
|
|||
|
Arbeit, aber ...
Hi guys,
Vielen Dank für Ihre Antwort und Lösung. Ich habe ein kleines Problem. Wenn die Quelle Spur wechseln, wie es 444, 100041, IT, GLOB; 1800000000 ;;;;; I 444, 100041; TM; GLOB; 1000000000 ;;;;; I 444; 10300264; IT; GLOB; 4500000000 ;;;;; I die awk Drop die Zeichen nach der Zahl ";;;;; I " Was muss ich ändern? Thanks and regards Gianluca |
|
|||
|
Versuchen Sie folgendes: Code:
awk 'BEGIN{OFS=FS=";"}{B[$2$3]+=$5;$5="@";A[$2$3]=$0} END{ for (i in A) {sub(/@/,sprintf("%.0f",B[i]),A[i]); print A[i]}}' infile | sort -nt';'-oder - Code:
awk -F';' '{B[$2$3]+=$5;$5="@";A[$2$3]=$0} END{ for (i in A) {sub(/@/,sprintf("%.0f",B[i]),A[i]); print A[i]}}' infile |sort -n|tr ' ' ';' |
|
||||
|
Verwenden gawk, nawk oder /usr/xpg4/bin/awk auf Solaris. Code:
awk -F\; 'END { for (_ in _0) {
l = split(_0[_], t); t[5] = _5[_]
for (i=1; i<=l; i++)
printf "%s", t[i] (i == l ? RS : FS)
}
}
{ _5[$2,$3] += $5; _0[$2,$3] = $0 }
' infile---------- Post at 01:03 PM Updated ---------- vorherige Schätzung wurde auf 12.54 Uhr ---------- Wenn die Datei bereits bestellt: Code:
awk -F\; 'END { print r }
!_[$2,$3]++ && NR > 1 {
print r; x = 0
}
{ $5 = x += $5; r = $0 }
' OFS=\; infile |
| Sponsored Links | ||
|
|
![]() |
| Lesezeichen |
| Thread Tools | Suche diesen Thread |
| Anzeige-Modi | Rate this thread |
|
|
Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
|
||||
| Faden | Thread Starter | Forum | Antworten | Last Post |
| Zusammenfassung iostat Werte in AIX | achak01 | Shell Programmierung und Scripting | 1 | 10-30-2009 11:20 AM |
| Zusammenfassung der Werte einer Spalte | mohsin.quazi | Shell Programmierung und Scripting | 3 | 08-24-2009 11:45 PM |
| Kombinieren Sie mehrere String in 1 string Gruppe nach bestimmten Kriterien | whchee | Shell Programmierung und Scripting | 4 | 05-11-2009 04:28 AM |
| Zusammenfassend Beträge | mohan705 | Shell Programmierung und Scripting | 4 | 12-24-2008 07:13 AM |
| Zusammenfassung der Spalte | sbasetty | Shell Programmierung und Scripting | 2 | 02-07-2007 08:15 PM |