eduardw schrieb:
So, habe es nun!
Sehr gut! Ich hätte noch kosmetische Verbesserungen und Verkürzungen für Dich.
| cat meldungen | sed 's/_/ /g;s/\(.\)\(\[[ 0-9]\)/\1\n\r\2/g;' | sed -r 's/(UNKNOWN|CRITICAL|OK)/ \1/g;s/([0-9])(n)/ \1 /g'
[ 1] Queue Eintraege OK - anzahl queue-eintraege: 0
[ 2] Queue Max Laufzeit OK - maximale laufzeit queue-eintraege: -1
[ 3] Erfolgreiche Nachrichten CRITICAL - anzahl erfolgreicher nachrichten: 0
[ 4] System Fehler Absolut OK - anzahl system-fehler absolut: 0
[ 5] System Fehler in30Min UNKNOWN - anzahl system-fehler letzte halbe stunde: 0
[ 6] Verarbeitungs Fehler OK - anzahl verarbeitungs-fehler: 0
|
Die 11:24 und 11:36-Postings haben sich wohl gekreuzt.
Statt
| x | sed a | sed b | sed c
|
kannst Du oft
aufrufen. Sed wendet dann auf jede Zeile des x Befhehl-outputs die Befehle a, b, c nacheinander an. Das ist oft das gleiche wie oben, aber nicht immer. Wenn b einen Befehl enthält die Verarbeitung insgeasamt zu beenden (q=quit) ist oben für die ganze Datei a angewendet worden und später wird auch c auf alles noch angewendet, unten nicht.
Das -r sagt, das reguläre Ausdrücke verwendet werden und erlaubt den Verzicht auf den Backslash vor (. Das wollte ich für den ersten Sedaufruf nicht ändern aber geht sicher auch da, so dass Du sed nur einmal starten musst, nicht 5x.
| cat meldungen | sed -r 's/_/ /g;s/(.)(\[[ 0-9])/\1\n\r\2/g;s/(UNKNOWN|CRITICAL|OK)/ \1/g;s/([0-9])(n)/ \1 /g'
[ 1] Queue Eintraege OK - anzahl queue-eintraege: 0
[ 2] Queue Max Laufzeit OK - maximale laufzeit queue-eintraege: -1
[ 3] Erfolgreiche Nachrichten CRITICAL - anzahl erfolgreicher nachrichten: 0
[ 4] System Fehler Absolut OK - anzahl system-fehler absolut: 0
[ 5] System Fehler in30Min UNKNOWN - anzahl system-fehler letzte halbe stunde: 0
[ 6] Verarbeitungs Fehler OK - anzahl verarbeitungs-fehler: 0
|
Das \r brauchst du für Windows?