提取部分日志文件

时间:2019-03-15 09:38:43

标签: regex bash

我有一个看起来像这样的日志文件

2019-03-15 04:30:41-0400 id:xxxx-84f1-xxxx-85xx-c4xxxx ip:127.0.0.1 apikey:-- rt:47.3ms 200 GET /end/point
-- Request --
some content
....
-- Response --
....
2019-03-15 04:31:00-0500 uid:diffrent-id ip:10.10.10.10. netip:10.10.10.10 apikey:-- rt:309ms 200 GET /some/other/end/point

我确实有id,它紧挨发生的时间。我想提取与该id相关的所有内容,直到下次发生,并将其保存到文件中。

1 个答案:

答案 0 :(得分:2)

要获得两个模式之间的所有内容,可以使用以下sed命令:

sed -n '/.* id:.*/,/.* uid:.*/p' log.txt

然后您会得到

-- Request --
some content
....
-- Response --
....

其中

  

-n禁止自动打印图案空间

     

p打印当前图案空间