我有一个日志文件,其中包含如下行:
06:06:48.531 9: 157 2492
06:06:49.331 10: 147 2812
...
我需要删除仅有的第三个':' 在所有行上,这样结果将是:
06:06:48.531 9 157 2492
06:06:49.331 10 147 2812
...
答案1
正面:
sed -e 's/://3' <file
答案2
第三个':'后面是空格,这使得它与其他的不同!
sed -i 's/: / /g' logfile
答案3
awk 解决方案:
awk '{ print(gensub(/:/,"",3,$0)) }' logfile
答案4
长版本(使用一种方法,当一个人感到疲倦并且不想想太多时非常有用......):
sed -e 's/\([^:]*\):\([^:]*\):\([^:]*\):/\1:\2:\3/'