我有一个大致如下所示的日志文件:
Sep 23 10:28:26 node kernel: em0: device is going DOWN
Sep 23 10:28:26 node kernel: em0: device is going UP
Sep 23 10:29:14 node cdsmon: /tmp/instance0 ; core dumped
Sep 23 10:29:14 node cdsmon: /tmp/instance0 ; core dumped
Sep 23 10:28:26 node kernel: em0: device is going DOWN
Sep 23 10:29:14 node cdsmon: /tmp/instance1 ; core dumped
Sep 23 10:28:26 node kernel: em0: device is going UP
Sep 23 10:29:14 node cdsmon: /tmp/instance2 ; core dumped
我想用 检测线条,cdsmon
然后将线条分割;
(以获取/tmp/instance0
和 之类的事件core dumped
)。
为此,我用作sed
:
sed -u -n -e "s/^.*cdsmon: //p" /tmp/dev.log
输出为:
/tmp/instance0 ; core dumped
/tmp/instance0 ; core dumped
/tmp/instance1 ; core dumped
/tmp/instance2 ; core dumped
但是在将这个输出传送到awk
如下所示时,它会给出与上面相同的输出:
sed -u -n -e "s/^.*cdsmon: //p" /tmp/dev.log | awk -F ";" "{print $1}"
尽管-u
从sed
.
谁能指出我是否遗漏了什么?我正在使用带有常规 awk/sed 的 FreeBSD 机器,不幸的是无法安装任何新软件包。