gpt4 book ai didi

linux - 在 Linux 中使用 sed 从日志文件中提取行

转载 作者:太空狗 更新时间:2023-10-29 11:11:57 25 4
gpt4 key购买 nike

我有一个打印以下行的日志文件:

01:15:21.882 DEBUG [SampleProcess] 
Sample Message
01:15:21.882 DEBUG [SampleProcess1]
Summary Report
Sample Text1: 126
Sample Text2: 2330
Sample Text3: 2331
Sample Text4: 0
01:15:21.883 DEBUG [SampleProcess2]

我能够使用下面的 sed 命令提取摘要报告

 sed -n '/Summary Report/,/Sample Text4/p' samplefile.log 

但是,我还想在生成示例报告时打印时间戳。

所以,目前

sed -n '/Summary Report/,/Sample Text4/p' samplefile.log

我看到输出为

Summary Report
Sample Text1: 126
Sample Text2: 2330
Sample Text3: 2331
Sample Text4: 0

我想要输出为

01:15:21.882 DEBUG [SampleProcess1] 
Summary Report
Sample Text1: 126
Sample Text2: 2330
Sample Text3: 2331
Sample Text4: 0

最佳答案

这可能对你有用(GNU sed):

sed -n '/^..:..:..\./{N;/Summary Report/!D;:a;N;/Sample Text4/!ba;s/\n/&    /gp}' file

关闭自动打印。如果当前行是时间戳且下一行不是Summary Report,则删除第一行并重复。否则,收集以下行直到 Sample Text4,缩进除第一行以外的所有行,打印并重复。

关于linux - 在 Linux 中使用 sed 从日志文件中提取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52558197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com