【问题标题】:Splunk rex expression to remove comma if present in json fileSplunk rex 表达式以删除 json 文件中存在的逗号
【发布时间】:2021-11-26 11:28:46
【问题描述】:

我遇到了一个小问题,我需要从 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

【问题讨论】:

    标签: regex sed splunk rex


    【解决方案1】:

    我解决了这个问题

    工作正则表达式

    SEDCMD-replacequotes = s/'/"/g
    SEDCMD-removecomma = s/,\s$//g
    SEDCMD-removefooter = s/(\]\,).*//g
    SEDCMD-removeheader = s/\{.data.: \[//g
    

    【讨论】:

    • 不要对你的问题给出多个答案,编辑你给出的答案是完整的:)
    【解决方案2】:

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

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

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

    其他正则表达式

    SEDCMD-removefooter = s/(\]\,).*//g
    SEDCMD-removeheader = s/\{\"data\": \[//g
    LINE_BREAKER = ([\r\n,]*(?:{[^[{]+\[)?){"links"
    

    【讨论】:

    • 你的问题解决了吗?
    • 是的最后... SEDCMD-replacequotes = s/'/"/g SEDCMD-removecomma = s/,\s$//g SEDCMD-removefooter = s/(]\,).* //g SEDCMD-removeheader = s/\{.data.: [//g
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多