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

How to print groups of lines from a log file, transposing them into single line

我正在尝试将服务器中的错误日志打印成一行,其中仅包含时间和重要的失败详细信息。第一行包含日志的时间戳,新行上方的最后一行包含日志的原因。想要将它们对齐成一行。任何帮助表示赞赏。 "Need the timestamp , severity, last line just before the blank line" 在一行中。

当前日志结构:

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

使用 awk:

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

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