Squeak.ru - шаблоны программирования

Регулярное выражение для извлечения ip между скобками

Мой текстовый формат

synchronised to server (192.168.204.1) at stratum 5

Я хочу извлечь IP-адрес между скобками и текстом перед ним .like

synchronised to server (192.168.204.1)

что такое регулярное выражение (используя awk или grep)

17.07.2018

  • для данного примера grep -o '.*)' будет работать.. если это не решает ваш реальный вариант использования, измените свой образец... также ожидается, что вы покажете, что вы пытались решить самостоятельно.. stackoverflow.com/questions/22937618/ может помочь вам в изучении регулярного выражения , но обратите внимание, что синтаксис/функция регулярного выражения отличается от инструмента к инструменту. Подробности см. в документации соответствующих инструментов. 17.07.2018
  • Это выглядит тривиально, но работает: awk -F'at' ' {print $1} ' Input_File 17.07.2018
  • Попробуйте sed 's/\(([^)]*)\).*/\1/' <<< str 17.07.2018
  • Возможный дубликат Как извлечь IP-адреса из файлов с помощью регулярного выражения в оболочке Linux? 17.07.2018

Ответы:


1

Если ваш фактический Input_file такой же, как показанные образцы, то здесь вам может помочь следующее.

awk 'match($0,/.*\([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\)/){print substr($0,RSTART,RLENGTH)}'  Input_file
17.07.2018

2

Не могли бы вы использовать sed для этого? Вот команда, которую вы могли попробовать

sed -r 's#(.*\([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}\)).*#\1#' Input_File

Краткое объяснение,

  1. Регулярное выражение .*\([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}\) будет соответствовать всему, что находится впереди (IP-адрес). Отмечено, что внутренние скобки должны быть экранированы.
  2. \1 будет печатать только совпадающую часть, заключенную во внешние скобки.
17.07.2018

3

Попробуй это!

.*\b([0-9]{1,3}\.){3}[0-9]{1,3}\b\)

Авария :

.* выделяет весь текст перед IP-адресом

\b соответствует границе слова между символом слова и символом, не являющимся словом.
([0-9]{1,3}\.) соответствует числам 0–9 в общей сложности 1–3 раза (чтобы сделать 1.1.1.1 и 127.0.0.1 действительным IP-адресом), а затем соответствует точке.
{3} соответствует 3 раза указанному выше токену.
[0-9]{1,3} соответствует числам 0–9 всего 1–3 раза.
\b – это граница слова
\) соответствует скобке

17.07.2018
  • Пожалуйста, добавьте объяснение. 17.07.2018
  • сделано! Также почему ответы StackOverflow получают так много отрицательных голосов, если решение работает? 17.07.2018
  • Потому что дело в качестве ответа, а не просто в подкидывании решения. :) Потратьте время, чтобы написать ответ, добавить объяснение, добавить справочные ссылки, если это возможно, и вы получите положительные оценки. Советую немного посерфить и проверить ответы с высокими голосами. Примите мой голос в качестве мотивации. :) 17.07.2018
  • Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...