#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. не давайте несколько ответов на свой вопрос, отредактируйте ответ, который вы даете, чтобы он был полным 🙂