使用 just sed
,匹配前两个星 ( *
) 和接下来的三个数字,并在其后放置一个空格。简单的:
sed 's;\*\*[0-9]\{3\};& ;'
尝试一下
$ echo '06/28/12 14:17:10.**754117** :R: INFO [6] X10.cpp:4042 |xevent 35932825 1 0 0' | sed 's;\*\*[0-9]\{3\};& ;'
06/28/12 14:17:10.**754 117** :R: INFO [6] X10.cpp:4042 |xevent 35932825 1 0 0
关于@DennisWilliamson 的评论和回答,我不确定星星是否是字符串的一部分,或者应该是降价的一部分。
在任何情况下,唯一.XXX
匹配 a(点和三位数字)的地方是 ms 部分。所以这也可以:
sed 's;[0-9]\{3\};& ;'
尝试一下 :)
$ echo '06/28/12 14:17:10.754117 :R: INFO [6] X10.cpp:4042 |xevent 35932825 1 0 0' | sed 's;[0-9]\{3\};& ;'
06/28/12 14:17:10.754 117 :R: INFO [6] X10.cpp:4042 |xevent 35932825 1 0 0
添加点会使其更安全一些:
sed 's;\.[0-9]\{3\};& ;'
尝试一下 :)
$ echo '06/28/12 14:17:10.754117 :R: INFO [6] X10.cpp:4042 |xevent 35932825 1 0 0' | sed 's;\.[0-9]\{3\};& ;'
06/28/12 14:17:10.754 117 :R: INFO [6] X10.cpp:4042 |xevent 35932825 1 0 0