1行からN番目に指定された文字を削除します。

1行からN番目に指定された文字を削除します。

次の行を含むログファイルがあります。

06:06:48.531 9: 157 2492
06:06:49.331 10: 147 2812
...

削除する必要がありますただ3番目:'なので、結果は次のようになります。

06:06:48.531 9 157 2492
06:06:49.331 10 147 2812
...

答え1

フロント:

sed -e 's/://3' <file

答え2

3番目の「:」の後にはスペースがありますが、これは他のものとは異なります!

sed -i 's/: / /g' logfile

答え3

奇妙な解決策:

awk '{ print(gensub(/:/,"",3,$0)) }' logfile

答え4

長いバージョン(疲れていて多くのことをしたくない場合は非常に便利な方法を使用しています...):

sed -e 's/\([^:]*\):\([^:]*\):\([^:]*\):/\1:\2:\3/'

関連情報