如何从日志文件中打印行组,将它们转换为单行

时间:2015-04-02 13:17:12

标签: linux awk sed cut

我正在尝试将我服务器中的错误日志打印成一行,只有时间和重要的失败细节。第一行包含日志的时间戳,新行上面的最后一行包含日志的原因。想把它们排成一行。任何帮助表示赞赏。 "需要时间戳,严重性,空白行之前的最后一行"在一条线上。

当前日志结构:

MAR31 10:30 critical
cable is faulty

MAR31 10:31 info
Card is recovered

MAR31 10:31 critical
Another card failed

MAR31 10:31 critical
missing inventory
cable missing

.....
.....
.....

.....
.....

......
......

所需的日志结构是:

MAR31 10:30 critical cable is faulty

MAR31 10:31 info Card is recovered

MAR31 10:31 critical Another card failed

MAR31 10:31 critical cable missing

1 个答案:

答案 0 :(得分:2)

使用awk:

awk -v RS= -F '\n' '{ print $1, $NF }' filename

空记录分隔符以空行分隔记录,并且字段分隔符设置为换行符,每个字段都是一行。 print $1, $NF然后打印记录的第一行和最后一行。