Hallo zusammen,
wohl eine (für euch) sehr einfache Frage aber ich bekomms gerade nicht hin. Ich habe eine Logfile, in der ich zwei Informationen herausfiltern muss und diese als eine Zeile in eine neue Datei speichern muss. Die Logfile sieht wie folgt aus:
Time = 0.01 DICPCG: Solving for T, Initial residual = 1, Final residual = 7.33133e-09, No Iterations 14 Min/max T:293 293.78 T_average = (domainIntegrate(T)|volOfMesh) [0 0 0 1 0 0 0] 293.06 ExecutionTime = 0.02 s ClockTime = 0 s Time = 0.02 DICPCG: Solving for T, Initial residual = 0.232843, Final residual = 3.94248e-09, No Iterations 13 Min/max T:293 294.136 T_average = (domainIntegrate(T)|volOfMesh) [0 0 0 1 0 0 0] 293.12 ExecutionTime = 0.02 s ClockTime = 0 s Time = 0.03 DICPCG: Solving for T, Initial residual = 0.153192, Final residual = 7.27611e-09, No Iterations 12 Min/max T:293.001 294.41 T_average = (domainIntegrate(T)|volOfMesh) [0 0 0 1 0 0 0] 293.18 ExecutionTime = 0.02 s ClockTime = 0 s Time = 0.04 DICPCG: Solving for T, Initial residual = 0.116642, Final residual = 4.36077e-09, No Iterations 12 Min/max T:293.003 294.64 T_average = (domainIntegrate(T)|volOfMesh) [0 0 0 1 0 0 0] 293.241 ExecutionTime = 0.02 s ClockTime = 0 s . . .
Benötigt wird:
Time
T_average
Über die Commandline und den Befehl grep:
1 | cat log | grep -E '^Time =' | cut -d' ' -f3 |
erhalte ich prompt alle Zeiten ohne große Verzögerung. Problem allerdings ich brauch auch die Tempraturen:
1 | cat log | grep 'T_average = ' | cut -d' ' -f11 |
Entsprechend dachte ich über ein Loop nach, der das File Zeile für Zeile ausliest und mir dann die Ausgaben liefert. Wenn ich das aber so mache, ist die Ausgabe von grep schonmal extrem langsamer, das aber nicht akzeptabel ist:
1 2 3 4 5 6 | cat $file | while read line do { echo $line | grep -E '^Time =' | cut -d' ' -f3 } done |
Wird wohl am Aufruf liegen. Einmal übergeb ich das ganze File an grep (was sehr schnell geht) und in der while Schleife nur Zeile für Zeile und da ruf ich dann jedesmal grep auf, was ggf. die ganze Sache verlangsamt, oder sehe ich das falsch?
Wäre für ne Rückmeldung dankbar. Wahrscheinlich mach ich es unnötig kompliziert.
PS: Benötigt wird letzten Endes ein File mit der Struktur:
Zeit Temp 0.01 xxx 0.02 xxx . . . . . .
Grüße Tobi