Регулярные выражения
Шпаргалка по регулярным выражениям и работе в терминале
Введение в регулярные выражения
Регулярные выражения (regex) — это мощный инструмент для поиска и обработки текста по заданным шаблонам. Они представляют собой специальные строки, которые описывают правила сопоставления с последовательностями символов.
Для чего используются регулярные выражения?
- Поиск информации в текстах, логах, файлах
- Валидация данных (проверка формата email, телефона и т.д.)
- Замена текста по сложным шаблонам
- Анализ и извлечение данных из неструктурированных источников
- Автоматизация обработки текстовых файлов
Как воспользоваться регулярными выражениями?
Регулярные выражения поддерживаются многими инструментами:
- В командной строке (через grep, sed, awk)
- В текстовых редакторах (Notepad++, VS Code, Sublime Text)
- В языках программирования (Python, Perl, JavaScript и др.)
- В системах управления базами данных
Основные инструменты для работы с regex в Linux:
| Инструмент | Назначение |
|---|---|
grep / egrep |
Поиск текста по шаблону |
sed |
Потоковый редактор для замены текста |
awk / gawk |
Обработка структурированного текста |
perl |
Скриптовый язык с мощной regex-поддержкой |
Пример простого регулярного выражения:
\d{3}-\d{2}-\d{4}
Находит номера в формате XXX-XX-XXXX (например, 123-45-6789)
Основные команды терминала
Общие команды
#- Комментарий (все, что после этого символа, игнорируется)$<пер>- Обращение к переменной с именем<пер>clear- Очистка экрана терминалаCtrl+L- Прокрутить экран так, чтобы текущая строка оказалась вверху окнаCtrl+Z- Прервать текущий процессCtrl+D- Зарегистрировать EOF (end of file - конец файла), часто используется для выхода из интерактивных программCtrl+C- Послать сигнал SIGINT (signal interrupt) для прерывания процесса|(пайп) - Перенаправление вывода одной команды на вход другой\- Экранирование специальных символов ([ ] \ ^ $ . | ? * + ( ))>- Перенаправление стандартного вывода в файл (с перезаписью)>>- Перенаправление стандартного вывода в файл (с дозаписью)&>- Перенаправление всех потоков (stdout и stderr) в файл./- Ссылка на текущую директорию
Утилиты для работы с файловой системой
cd - смена текущей директории
cd [каталог]
Шорткоты:
..- родительский каталог-- предыдущий каталог/- корневая директория~или простоcd- домашний каталог пользователя
Пример:
cd /opt/1cv8 # переходит в директорию установленной платформы 1С
pwd - показать текущую директорию
Выводит полный путь к текущей рабочей директории.
ls - список файлов и директорий
ls [опции] [каталог/шаблон]
Основные опции:
-1- вывод списком (по одному файлу на строку)-a- показать скрытые файлы-F- добавить суффиксы для директорий (/) и исполняемых файлов (*)-h- человекочитаемые размеры (KB, MB, GB)-l- подробный вывод (права, владелец, размер, дата)-R- рекурсивный обход поддиректорий-r- обратный порядок сортировки-S- сортировка по размеру-t- сортировка по времени изменения
Пример:
ls -l # подробный список файлов
tree - отображение структуры директорий
tree [опции]
Опции:
-a- показать все файлы, включая скрытые-d- показывать только директории-D- показывать дату последнего изменения-f- показывать полные пути-h- человекочитаемые размеры-s- показывать размеры в байтах
Утилиты для работы с файлами
cat - вывод содержимого файла
cat [опции] [файл]
Опции:
-n- нумеровать все строки-b- нумеровать только непустые строки
Пример:
cat -n /var/log/*/* # выводит содержимое всех файлов в поддиректориях /var/log с нумерацией строк
less - постраничный просмотр файла
less [опции] [файл]
Опции:
-n- нумеровать строки
Пример:
less -n access.log # просмотр лог-файла с нумерацией строк
head - первые строки файла
head [опции] [файл]
Опции:
-<n>- вывести первые n строк (по умолчанию 10)
Пример:
head -5 file.txt # первые 5 строк файла
tail - последние строки файла
tail [опции] [файл]
Опции:
-<n>- последние n строк-f- следить за изменениями файла в реальном времени
Пример:
tail -3 file.txt # последние 3 строки
tail -f /var/log/syslog # мониторинг системного лога
Поиск и обработка данных
find - поиск файлов
find [директория] [опции] [критерии] [шаблон]
Опции:
-type f- искать только файлы-type d- искать только директории-name- поиск по имени
Пример:
find /opt -name "*1cv8" # поиск в /opt файлов и директорий, содержащих "1cv8"
grep/egrep - поиск по шаблону
egrep [опции] 'регулярное выражение' [файл]
Опции:
-h- не показывать имя файла-i- игнорировать регистр-c- подсчитать количество совпадений-A<n>- показать n строк после совпадения-B<n>- показать n строк до совпадения-C<n>- показать n строк до и после
Пример:
egrep -i -A2 ',call,' * | head -n 5 # поиск ",call," без учета регистра + 2 строки после
sed - потоковый редактор
sed [опции] 'команды' [файл]
Основные команды:
s/поиск/замена/g- замена текста (g - глобально)/паттерн/d- удаление строк
Пример:
echo "abc191a" | sed -r 's/bc//; s/a/z/g; s/[1-8]/@/' # результат: z@91z
awk/gawk - обработка текста
gawk [опции] 'BEGIN{...} /шаблон/{...} END{...}' [файл(ы)]
Основные возможности:
-F- указать разделитель полей- Встроенные переменные:
NR,NF,$0,$1и т.д. - Ассоциативные массивы
- Условные конструкции и циклы
Пример:
gawk -v RS='[0-9]+:[0-9]+.[0-9]+-' '/Ошибка/{print FILENAME " -> " RT $0}' *
Сортировка и форматирование
sort - сортировка строк
sort [опции] [файл]
Опции:
-k<n>- сортировать по n-му полю-t<c>- использовать символ c как разделитель-r- обратный порядок-n- числовая сортировка-b- игнорировать начальные пробелы
Пример:
sort -k2 -t\; -r file.txt # сортировка по второму полю (разделитель ";") в обратном порядке
column - форматирование в колонки
column [опции] [файл]
Опции:
-t- создать таблицу-s- указать разделитель
Пример:
echo "a,b,c,d" | column -t -s , # форматирование в таблицу
Регулярные выражения
Основные метасимволы
^- начало строки$- конец строки.- любой символ (кроме перевода строки).*- ноль или более любых символов.+- один или более любых символов[0-9]- любая цифра[a-z]- любая буква в нижнем регистре?- предыдущий символ может отсутствовать|- логическое "или"()- группировка{n,m}- от n до m повторений
Специальные последовательности
\d- цифра ([0-9])\w- "словесный" символ ([a-zA-Z0-9_])\s- пробельный символ (пробел, табуляция)\n- перевод строки\t- табуляция\b- граница слова
Примеры полезных регулярных выражений
- Поиск email-адресов:
\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b - Поиск URL:
https?://[^\s]+ - Поиск дат в формате DD-MM-YYYY:
\b\d{2}-\d{2}-\d{4}\b
Полезные команды для мониторинга
w- информация о пользователях и загрузке CPUtop/htop- диспетчер задачdf -h- информация о дисковом пространствеfree -h- информация об использовании памятиping- проверка сетевого соединенияifconfig/ip a- информация о сетевых интерфейсахuname -a- информация о версии ядра
Эта шпаргалка содержит основные команды и регулярные выражения, которые помогут эффективно работать в терминале и обрабатывать текстовые данные. Для более сложных задач рекомендуется изучать документацию по каждому инструменту.

Комментарии
Отправить комментарий