Ad Widget

Collapse

Преобразование/обрезка текстового знач&a

Collapse
This topic has been answered.
X
X
 
  • Time
  • Show
Clear All
new posts
  • alfexandr
    Junior Member
    • Apr 2015
    • 1

    #1

    Преобразование/обрезка текстового знач&a

    Подскажите пожалуйста такой вопрос возможно ли как-то преобразовать или обрезать строковое значение получен по snmp.
    Например коммутаторы по ifDescr отдают длинные значения, Часть значения мне не нужно хранить/отображать в названиях триггеров/графиков
    Как сделать чтобы вместо "D-Link DGS-3120-24SC R1.02.013 Port 20 on Unit 2" хранилось только "Port 20 on Unit 2"
    Спасибо.
  • Answer selected by Kos at 09-11-2021, 13:05.
    Bobka
    Junior Member
    • Oct 2021
    • 4

    Добрый день, может кому то пригодится решение задачки с регулярными выражениями:
    из данных:
    "APTEKA_SRV 6.1.7601 Microsoft Windows 7 Профессиональная Service Pack 1 x64"
    или
    "APTEKA_SRV Майкрософт Windows 10 Pro x64"

    вытянул версию ОС регулярными выражениями:
    "(Windows).(\d\d|\d)" параметр "\1 \2"

    Comment

    • kruto4000
      Junior Member
      • Dec 2019
      • 1

      #2
      у меня та же проблема. в правилах обнаружения есть правило на диски которое выдает очень длинные значения типа: C:\\ Label:System Serial Number 8cd03db6
      мне необходимо сократить до С:\\
      в предобработке правила обнаружения нет функции "обрезать", как в предобработке элемента данных

      Comment

      • FDF
        Junior Member
        • Dec 2019
        • 1

        #3
        Надо выбрать "Предобработка" => Регулярные выражения: "(Port).(\d\d|\d)" в правом поле прописать "\1 \2".
        Проверять работу выражений можно на сайте - https://regex101.com/
        Работает это так:
        Есть данные - "D-Link DGS-3120-24SC R1.02.013 Port 20 on Unit 2" хранилось только "Port 20 on Unit 2"
        В них ищется первая группа текста (Port)
        далее . (точка) означает любой символ
        далее ищется вторая группа в которой после слова Port и фактически пробела ищутся две или одна цифра (\d\d|\d).

        Далее на выходе поисков имеем 2 группы найденных данный "\1 \2" - Port 20.

        Вот так.

        Click image for larger version  Name:	Port.JPG Views:	12 Size:	31.8 KB ID:	391267
        Attached Files
        Last edited by FDF; 06-12-2019, 18:03.

        Comment

        • Bobka
          Junior Member
          • Oct 2021
          • 4

          #4
          Добрый день, скажите пожалуйста, есть ли возможность получать элемент данных: такой как "версия ОС", касательно Windows?
          Ключ "system.uname" тянет и имя хоста в придачу
          получаемое значение на ключ "system.uname":
          "!APTEKA_SRV 6.1.7601 Microsoft Windows 7 Профессиональная Service Pack 1 x64"

          а нужно что бы оставалась только "Windows 7"
          правую часть отсечь получается через предобработка, "обрезать справа"
          версия Забикса 4.0.26

          Comment


          • Hamardaban
            Hamardaban commented
            Editing a comment
            товарищ ранее правильно указал путь - регулярные выраженияъ
            изучите - реально пригодиться
        • Bobka
          Junior Member
          • Oct 2021
          • 4

          #5
          Покорнейше благодарю за указанное направление для решения этой задачки)

          Comment

          • Bobka
            Junior Member
            • Oct 2021
            • 4

            #6
            Добрый день, может кому то пригодится решение задачки с регулярными выражениями:
            из данных:
            "APTEKA_SRV 6.1.7601 Microsoft Windows 7 Профессиональная Service Pack 1 x64"
            или
            "APTEKA_SRV Майкрософт Windows 10 Pro x64"

            вытянул версию ОС регулярными выражениями:
            "(Windows).(\d\d|\d)" параметр "\1 \2"

            Comment

            Working...