如何从日志文件中打印多行,并将它们转换为单行
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
然后打印记录的第一行和最后一行。
我正在尝试将服务器中的错误日志打印成一行,其中仅包含时间和重要的失败详细信息。第一行包含日志的时间戳,新行上方的最后一行包含日志的原因。想要将它们对齐成一行。任何帮助表示赞赏。 "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
然后打印记录的第一行和最后一行。