Ich möchte etwas dynamischen Text aus der Protokolldatei entfernen. Ich bin in der Lage, es mit regex
und grep -oP
zu extrahieren, funktioniert jedoch die gleiche Regex nicht mit sed
Befehl.Verwendung von Regex mit sed Suche und Ersetzen
Beispieldaten: (zum Lesen Bequemlichkeit Concerned Daten zwischen ABCDEF und LMNOP nur)
XXX 2 13:53:35 XXXX0-0-0 XXXXXXXX[3513]: ABCDEF[XXXX]: 1472846015.555671: LMNOP(79): XXXXXXXXXXXXX - XXXXXX XX XXX XXX XXXXX XX XXXXX XXXX XXX XXXX XXX
Folgenden sehen Sie die Daten, die ich aus der Protokolldatei entfernen möchten. Ich bin in der Lage, es zu extrahieren regex + grep
:
grep -Po ']: [0-9]{10}\.[0-9]{6}:' sample
]: 1472846015.555671:
Nun, wenn ich die gleiche Regex mit sed
Befehl verwenden, es ist nicht helping.Any Vorschläge?
Ich habe den folgenden Befehl mit sed verwendet und es gab mir die unveränderte Datei zurück.
sed "s/]: [0-9]{10}\.[0-9]{6}://" input
oder
awk '{gsub(/]: [0-9]{10}\.[0-9]{6}:/,"")}1' input
ich folgende Ausgabe muß:
XXX 2 13:53:35 XXXX0-0-0 XXXXXXXX[3513]: ABCDEF[XXXX LMNOP(79): XXXXXXXXXXXXX - XXXXXX XX XXX XXX XXXXX XX XXXXX XXXX XXX XXXX XXX
oder noch besser:
XXX 2 13:53:35 XXXX0-0-0 XXXXXXXX[3513]: ABCDEF[XXXX]::LMNOP(79): XXXXXXXXXXXXX - XXXXXX XX XXX XXX XXXXX XX XXXXX XXXX XXX XXXX XXX