0

我遇到了一个小问题,我需要从 JSON 日志文件中删除最后一个字符“,”(如果存在)。我在 Splunk 中使用它。

这看起来很简单,我希望我的正则表达式能工作,但它不能工作。我的尝试:

1. s/\(,$\)?//g
2. s/,$//g
3. s/\(.*\),/\1/
 

仅供参考:我的 json 文件是嵌套的,除了删除最后一个字符外,我还从该文件中删除了一些页眉和页脚,并将 1 事件拆分为多个。由于事件中断,它在每个事件结束时都有。为了更好地理解,可以参考我在 Splunk Communityfourm 上发布的这个链接 https://community.splunk.com/t5/Getting-Data-In/Updated-Help-in-event-break-for-json-file/td- p/569676

在此处输入图像描述

4

2 回答 2

0

我解决了这个问题

工作正则表达式

SEDCMD-replacequotes = s/'/"/g
SEDCMD-removecomma = s/,\s$//g
SEDCMD-removefooter = s/(\]\,).*//g
SEDCMD-removeheader = s/\{.data.: \[//g
于 2021-10-06T15:02:44.040 回答
0

实际上最后有一个额外的空间,所以下面的一个正在工作,但它会导致另一个问题。

Working Regex s/\(,\s$\)//g

因为我将它与其他正则表达式和事件中断一起使用。不是事件中断不起作用。

其他正则表达式

SEDCMD-removefooter = s/(\]\,).*//g
SEDCMD-removeheader = s/\{\"data\": \[//g
LINE_BREAKER = ([\r\n,]*(?:{[^[{]+\[)?){"links"
于 2021-10-06T09:43:05.510 回答