К основному контенту

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

Регулярные выражения - это очень мощный инструмент для поиска текста по шаблону, обработки и изменения строк, который можно применять для решения множества задач. Вот основные из них: Проверка ввода текста; Поиск и замена текста в файле; Пакетное переименование файлов; Взаимодействие  с сервисами, таким как Apache; Проверка строки на соответствие шаблону.

Это далеко не полный список, регулярные выражения позволяют делать намного больше. Но для новых пользователей они могут показаться слишком сложными, поскольку для их формирования используется специальный язык. Но учитывая предоставляемые возможности, регулярные выражения Linux должен знать и уметь использовать каждый системный администратор.

В этой статье мы рассмотрим регулярные выражения bash для начинающих, чтобы вы смогли разобраться со всеми возможностями этого инструмента.

Содержание статьи: Регулярные выражения Linux Примеры использования регулярных выражений Выводы Регулярные выражения Linux

В регулярных выражениях могут использоваться два типа символов: обычные буквы; метасимволы.

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

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

обычный_символ спецсимвол_оператор

спецсимвол_замены спецсимвол_оператор

Если оператор не указать, то будет считаться, что символ обязательно должен встретится в строке один раз. Таких конструкций может быть много. Вот основные метасимволы, которые используют регулярные выражения bash: \ - с обратной косой черты начинаются буквенные спецсимволы, а также он используется если нужно использовать спецсимвол в виде какого-либо знака препинания; ^ - указывает на начало строки; $ - указывает на конец строки; * - указывает, что предыдущий символ может повторяться 0 или больше раз; + - указывает, что предыдущий символ должен повторится больше один или больше раз; ? - предыдущий символ может встречаться ноль или один раз; {n} - указывает сколько раз (n) нужно повторить предыдущий символ; {N,n} - предыдущий символ может повторяться от N до n раз; . - любой символ кроме перевода строки; [az] - любой символ, указанный в скобках; х|у - символ x или символ y; [^az] - любой символ, кроме тех, что указаны в скобках; [a-z] - любой символ из указанного диапазона; [^a-z] - любой символ, которого нет в диапазоне; \b - обозначает границу слова с пробелом; \B - обозначает что символ должен быть внутри слова, например, ux совпадет с uxb или tuxedo, но не совпадет с Linux; \d - означает, что с