2012-04-03 4 views
1

Ich benutze awk, um alle der 7. Feld durch ein Komma getrennt zu bekommen.Wie kann ich Zeitformat hinzufügen hh: mm.ss aus einer awk-Anweisung

1,root,init,20,0.0,0.1,0:01.78 
1008,root,migration/0,1,2.0,1.8,7:04.32 
26542,peter.ca,top,20,1.9,0.1,5:42.78 
18776,john.sel,awk,15,0.2,0.0,0:01.00 
49841,murray.s,topsum,16,1.3,0.1,0:02.11 
29806,peter.ca,bash,20,0.1,0.0,0:00.03 
9845,murray.s,awk,18,0.5,0.2,0:14.01 
6549,peter.ca,topsum,16,1.4,0.2,0:04.81 
18746,john.sel,bash,20,0.1,0.0,0:00.50 
24987,john.bel,who,20,3.0,1.1,0:00.01 
5,root,watchdog/0,1,0.0,0.0,0:00.00 
29874,murray.s,timeon,20,0.1,0.2,0:02.15 


cat data.top | grep root | awk 'BEGIN { FS = "," } ; { print $7 }' 

Ausgang:

0:01.78 
7:04.32 
0:00.00 

ich diese zusammen fügen bin versucht (ich auch gehe davon aus, dass die Gesamt weniger als 24 Stunden sein wird, so dass kein Problem ist).

Vielen Dank im Voraus.

Antwort

2
$ awk -F, '/root/{split($7, t, ":"); sum+=60*t[1]+t[2]}; END{print sum}' input.txt 
426.1 

$ date -ud @426.1 +%T.%N | sed 's/0*$//' 
00:07:06.1 
+0

Danke für das Hinzufügen dieses letzten Teils in. Ich denke, das wird funktionieren. – leeman24

+0

Der Befehl 'Datum' funktioniert überhaupt nicht. Mit der Option '-d 'wird der Kernel-Wert für die Sommerzeit entsprechend der Manpage festgelegt. – Graham

+0

@Graham - das liegt daran, dass Kevs Antwort Linux voraussetzt, vermutlich Fedora. – ghoti