Что такое регулярные выражения 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 раз или больше |
- Раскрытие фигурных скобок используется для создания строк. Это помогает создавать несколько строк из одной.