Учебное пособие по регулярным выражениям в Linux: пример Grep Regex

Содержание:

Anonim

Что такое регулярные выражения Linux?

Регулярные выражения Linux - это специальные символы, которые помогают искать данные и сопоставлять сложные шаблоны. Регулярные выражения сокращаются до «regexp» или «regex». Они используются во многих программах Linux, таких как grep, bash, rename, sed и т. Д.

Типы регулярных выражений

Для простоты понимания давайте изучим различные типы Regex один за другим.

  • Основные регулярные выражения
  • Интервал Регулярные выражения
  • Расширенные регулярные выражения
  • Резюме

Нажмите здесь, если видео недоступно

Основные регулярные выражения

Некоторые из часто используемых команд с регулярными выражениями - это tr, sed, vi и grep. Ниже перечислены некоторые из основных регулярных выражений.

Символ Описания
. заменяет любого персонажа
соответствует началу строки
$ соответствует концу строки
* совпадает ноль или более раз с предыдущим символом
\ Представляют специальные символы
() Группирует регулярные выражения
? Соответствует ровно одному символу

Посмотрим на пример.

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

Искать контент, содержащий букву «а».

' ^ ' соответствует началу строки. Давайте поищем контент, который НАЧИНАЕТСЯ с

Фильтруются только строки, начинающиеся с символа. Строки, не содержащие в начале символа «а», игнорируются.

Давайте посмотрим на другой пример -

Выбирайте только те строки, которые заканчиваются на t с помощью $

Интервал Регулярные выражения

Эти выражения говорят нам о количестве вхождений символа в строку. Они есть

Выражение Описание
{n}

Соответствует предыдущему символу, который встречается n раз точно

{n, m} Соответствует предыдущему символу, встречающемуся n раз, но не более m
{n,} Соответствует предыдущему символу, только если он встречается n раз или больше

Пример:

Отфильтровать все строки, содержащие символ 'p'

Мы хотим проверить, что символ «p» встречается в строке ровно 2 раза один за другим. Для этого синтаксис будет следующим:

cat sample | grep -E p\{2}

Примечание. К этим регулярным выражениям необходимо добавить -E.

Расширенные регулярные выражения

Эти регулярные выражения содержат комбинации более чем одного выражения. Некоторые из них:

Выражение Описание

\ +

Соответствует одному или нескольким вхождениям предыдущего символа

\?

Соответствует нулю или одному вхождению предыдущего символа

Пример:

Поиск всех символов 't'

Предположим, мы хотим отфильтровать строки, в которых символ 'a' предшествует символу 't'.

Мы можем использовать команду вроде

cat sample|grep "a\+t"

Расширение скобы

Синтаксис для раскрытия фигурных скобок - это последовательность или список элементов, разделенных запятыми внутри фигурных скобок «{}». Начальный и конечный элементы в последовательности разделены двумя точками «…».

Некоторые примеры:

В приведенных выше примерах команда echo создает строки, используя раскрытие фигурных скобок.

Резюме:

  • Регулярные выражения - это набор символов, используемых для проверки шаблонов в строках.
  • Их также называют regexp и regex.
  • Для написания скриптов важно выучить регулярные выражения.
  • Вот некоторые основные регулярные выражения:
Символ Описания
. заменяет любого персонажа
соответствует началу строки
$ соответствует концу строки
  • Некоторые расширенные регулярные выражения:
Выражение Описание
\ + Соответствует одному или нескольким вхождениям предыдущего символа
\? Соответствует нулю или одному вхождению предыдущего символа
  • Некоторые интервальные регулярные выражения:
Выражение Описание
{n} Соответствует предыдущему символу, который встречается n раз точно
{n, m} Соответствует предыдущему символу, встречающемуся n раз, но не более m
{n,} Соответствует предыдущему символу, только если он встречается n раз или больше
  • Раскрытие фигурных скобок используется для создания строк. Это помогает создавать несколько строк из одной.