Ich haben eine Protokolldatei, die Daten unten enthalten:Schnitzen Daten aus Protokolldatei
time=1460196536.247325 latency=3:6:7:9:16:(8)ms latency95=11ms latency99=13ms requests=517 option1=0 option2=0 errors=0 throughput=480rps ql=1 rr=0.00% cr=0.00% accRequests=101468 accOption1=0 accOption2=0 accLatency=2:6:7:8:3998:(31)ms accLatency95=11ms accLatency99=649ms accOpenQueuing=1664 accErrors=278
Ich versuche bashscript zu schreiben, wo ich versuche, diese Werte für jede Zeile in der Protokolldatei zu schnitzen und zu einem schreiben zweite Datei:
- Zeit (in Ortszeit konvertiert GMT + 2)
- latency99
- Anfragen
- Fehler
gewünschte Ausgabe in der zweiten Datei:
time latency99 requests errors
12:08:56 13 517 0
ist der einfachste Weg regex für diesen Einsatz?
Aus irgendeinem Grund, den ich dieses: (Bash Version 4.2.25) './test.sh Spalte: Zeile zu lang Zeit latency99 Anfragen errors' – user3580316
Ich verstehe. Es ist die Grenze der Länge der Eingabezeile in Bytes, definiert durch 'column'. Ich habe meine Antwort so bearbeitet, dass ich nur 'printf' verwende. –
Wie entferne ich die 'ms' nach 13? Ich muss eine Protokolldatei definieren, die es zeilenweise liest und dann die Ausgabe in eine andere Datei schreibt? – user3580316