sagen, dass ich eine Datei mit drei Spalten haben, wie folgt:Wie kann man den Inhalt einer Spalte mit awk um zwei andere zählen?
awk zu verwenden00:00:01 Login Steve
00:00:01 Install Sarah
00:00:01 Install Sarah
00:00:02 Explorer Sarah
00:00:02 Explorer Sarah
00:00:02 Install Steve
00:00:02 Firewall Sarah
00:00:02 Logout Steve
00:00:04 Logout Sarah
Ist es möglich, die einzigartigen Aktionen jeder Benutzer in jedem Zeitstempel führt zu zählen, so ist die Ausgabe etwas wie folgt aus:
00:00:01 Steve Login 1
00:00:01 Sarah Install 2
00:00:02 Sarah Explorer 2
00:00:02 Steve Install 1
00:00:02 Sarah Firewall 1
00:00:02 Steve Logout
00:00:04 Sarah Logout
Dies ist die nächste, die ich gekommen bin:
awk '{count[$1,$3,$2]++}END{for (i in count){split(i,a,SUBSEP); print a[1],a[2],count[i]}}' awktest.txt
Was mir dieses Ergebnis geben:
00:00:02 Sarah 1
00:00:02 Steve 1
00:00:02 Steve 1
00:00:01 Steve 1
00:00:04 Sarah 1
00:00:02 Sarah 2
00:00:01 Sarah 1
00:00:01 Sarah 1
Ich mache das in Cygwin.
Warum haben die letzten zwei Zeilen Ihrer gewünschten Ausgabe keine Anzahl? – jas
Was ist deine eigentliche Frage? Sie geben das Problem an und was Sie getan haben, um es zu lösen. –
Sie haben also Code geschrieben, der 2 der 3 Indizes des Arrays ausgibt, und 1 der 3 Indizes fehlt in der Ausgabe. Was könnte das Problem sein .... –