Выражение Splunk rex для удаления запятой, если оно присутствует в файле json

#regex #sed #splunk #rex

Вопрос:

Я столкнулся с небольшой проблемой, когда мне нужно удалить последний символ», » (если он присутствует) из файла журнала JSON. Я использую его в Splunk.

Это кажется простым, и я надеялся, что мое регулярное выражение будет работать, но оно не работает. Мои Попытки :

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

К вашему сведению: Мой файл json вложен, наряду с удалением последнего символа, я удаляю некоторые верхние и нижние колонтитулы из этого файла и разбиваю событие 1 на несколько. Из — за перерыва в событии это происходит в конце каждого события.
Для лучшего понимания можете обратиться по этой ссылке, которую я разместил в сообществе Splunk fourm
https://community.splunk.com/t5/Getting-Data-In/Updated-Help-in-event-break-for-json-file/td-p/569676

введите описание изображения здесь

Ответ №1:

На самом деле в конце было дополнительное пространство, так что ниже один работает, но это вызывает другую проблему.

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

потому что я использую его с другими регулярными выражениями и прерыванием события. Не прерывание события не работает.

Другое Регулярное Выражение

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

Комментарии:

1. вы решили свою проблему?

2. да, наконец-то… SEDCMD-replacequotes = s/’/»/g SEDCMD-removecomma = s/,s$//g SEDCMD-removefooter = s/(],).*//g SEDCMD-удалитель = s/{.данные.: [//g

Ответ №2:

Я решил эту проблему

Рабочее регулярное выражение

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

Комментарии:

1. не давайте несколько ответов на свой вопрос, отредактируйте ответ, который вы даете, чтобы он был полным 🙂