gpt4 book ai didi

regex - AWK - 当 RS 是正则表达式时使用 RT 给我下一场比赛的 RS 而不是当前比赛

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

我正在尝试使用 gawk 从日志中提取段落,它工作得很好,直到我想包含它找到的记录分隔符。

这是命令:

gawk --re-interval 'BEGIN{RS="[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}.[0-9]{1,6} \\[[A-Z]*\\]";} /983a99f8-bec6-11e1-80dd-059a821d0b73/ {print $0}' full.log 

如果我在 print RT 中添加 $0,它会打印下一场比赛的 RT 而不是当前比赛。

这是一些示例文本

9:08:06.899627 [DEBUG] <0.30065.3>@agent:1565 Recs to loop through:  [{agent_state,"OpenAcdAgent43","Jeff",
undefined,wrapup,
{call,"983a99f8-bec6-11e1-80dd-059a821d0b73",
voice,
{"8501112234","MorganGrimes"},
"9201",<0.30392.3>,[],
{client,"8221314","DCF",[],1340629596,
1340629596},
[creole_general],
<0.30398.3>,outband,inband,inbound,10},
1340629658,undefined,"Default",1340629658
9:08:06.899707 [INFO] <0.168.0>@cpx_monitor:649 Down message for reference #Ref<0.0.16.137225> of <0.30064.3> due to normal

我想要 9:08:06.899627 [DEBUG] 能够做的是将 9:08:06.899627 [DEBUG] 添加到我的比赛中,但 RS 将其取消。我得到的是 9:08:06.899707 [INFO]。

谢谢!

最佳答案

那是因为记录分隔符出现在记录的结尾。所以 9:08:06.899627 [DEBUG] 是空记录的结尾,9:08:06.899707 [INFO] 是与您的 GUID 正则表达式匹配的记录的结尾.

需要保存之前的RT,并输出保存的。

gawk --re-interval 'BEGIN{RS="[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}.[0-9]{1,6} \\[[A-Z]*\\]";} /983a99f8-bec6-11e1-80dd-059a821d0b73/ {print savedRT, $0} {savedRT = RT}' full.log 

关于regex - AWK - 当 RS 是正则表达式时使用 RT 给我下一场比赛的 RS 而不是当前比赛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11198851/

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