gpt4 book ai didi

sed - 如何将 sed 模式与 : 匹配

转载 作者:行者123 更新时间:2023-12-02 01:51:37 27 4
gpt4 key购买 nike

我有以下日志:

File Process Start : 2014-03-12 - 10:43:40UnZipping File : fetch_export?id=t63184&file=4Extracted File : exp_4.mbxExpected Messages : 6236File Process Start : 2014-03-12 - 10:57:38UnZipping File : fetch_export?id=t63185&file=39Extracted File : Expected Messages : 0File Process Start : 2014-03-12 - 10:57:38UnZipping File : fetch_export?id=t63185&file=33Extracted File : Expected Messages : 0File Process Start : 2014-03-12 - 10:57:38UnZipping File : fetch_export?id=sept2012&file=61Extracted File : exp_61.mbxExpected Messages : 7935

我需要在此命令中更改什么?

sed -n  '/File Process Start/,/Expected Messages/p'

我只需要之间的输出

File Process Start...Expected Messages : 0

像这样:

File Process Start : 2014-03-12 - 10:57:38UnZipping File : fetch_export?id=t63185&file=39Extracted File : Expected Messages : 0File Process Start : 2014-03-12 - 10:57:38UnZipping File : fetch_export?id=t63185&file=33Extracted File : Expected Messages : 0

最佳答案

想法是打印“File Process Start...”和“Expected Messages : 0”之间的行。问题是您事先不知道您是否会找到“预期消息:0”或“预期消息:X”。因此,从“File Process Start”开始,继续将这些行保存在保留空间中,直到您能够决定是打印它们还是丢弃它们。

sed -n '/Expected Messages : 0/{H;g;p};/.*/H;/File Process Start/h' log.txt

伪代码是:

  • 如果该行包含“Expected Messages : 0”,(h) 将此行追加到保留空间中(此时,保留空间将有行“文件进程启动...”、“解压缩文件...”和“提取的文件...”), (g) 从保持空间获取内容到模式空间(即从“File Process Start...”到您刚刚附加的最后一行), (p) 打印模式空间的内容。

  • 如果该行包含任何其他内容,(H) 将其附加到保留空间。

  • 如果该行包含“File Process Start”,(h) 清除保留空间中的内容并将新行放在那里。

关于sed - 如何将 sed 模式与 : 匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22351009/

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