Ich habe eine Protokolldatei mit Zeilen wie diesen:
06:06:48.531 9: 157 2492
06:06:49.331 10: 147 2812
...
Ich muss entfernennurder 3.:' in allen Zeilen, sodass das Ergebnis wäre:
06:06:48.531 9 157 2492
06:06:49.331 10 147 2812
...
Antwort1
POSIXLY:
sed -e 's/://3' <file
Antwort2
Auf das dritte ':' folgt ein Leerzeichen, was es von den anderen unterscheidet!
sed -i 's/: / /g' logfile
Antwort3
Eine awk-Lösung:
awk '{ print(gensub(/:/,"",3,$0)) }' logfile
Antwort4
Die Langfassung (mit einer Methode, die sehr nützlich sein kann, wenn man müde wird und nicht zu viel nachdenken möchte ...):
sed -e 's/\([^:]*\):\([^:]*\):\([^:]*\):/\1:\2:\3/'