Регулярное выражение (regex) используется для поиска заданной последовательности символов в файле. Для определения шаблона могут использоваться такие символы, как буквы, цифры и специальные символы. Различные задачи можно легко выполнять с помощью шаблонов регулярных выражений. В этом руководстве мы покажем вам, как использовать шаблоны регулярных выражений с командой awk.
Основные символы, используемые в узорах
Многие символы могут использоваться для определения шаблона регулярного выражения. Символы, наиболее часто используемые для определения шаблонов регулярных выражений, определены ниже.
Персонаж | Описание |
---|---|
. | Соответствует любому символу без новой строки (\ n) |
\ | Цитировать новый мета-персонаж |
^ | Соответствует началу строки |
$ | Сопоставьте конец строки |
| | Определите альтернативный |
() | Определить группу |
[] | Определите класс персонажа |
\ w | Соответствует любому слову |
\ s | Соответствует любому символу пробела |
\ d | Соответствует любой цифре |
\ b | Соответствует любой границе слова |
Создать файл
Чтобы следовать этому руководству, создайте текстовый файл с именем продукты.текст. Файл должен содержать четыре поля: ID, Имя, Тип и Цена.
ID Имя Тип Цена
p1001 15-дюймовый монитор Монитор $ 100
Мышь p1002 A4tech Mouse $ 10
p1003 Принтер Samsung Принтер $ 50
p1004 Сканер HP Сканер $ 60
Мышь Logitech Mouse Mouse p1005 $ 15
Пример 1: определение шаблона регулярного выражения с использованием класса символов
Следующая команда 'awk' будет искать и печатать строки, содержащие символ 'n', за которым следуют символы 'er'.
продукты $ cat.текст$ awk '/ [n] [er] / print $ 0' продуктов.текст
Следующий вывод будет произведен после выполнения вышеуказанных команд. На выходе отображается строка, соответствующая шаблону. Здесь только одна линия соответствует шаблону.
Пример 2: определение шаблона регулярного выражения с помощью символа '^'
Следующая команда 'awk' будет искать и печатать строки, которые начинаются с символа 'p' и включают цифру 3.
продукты $ cat.текст$ awk '/ ^ p.* 3 / print $ 0 'продуктов.текст
Следующий вывод будет произведен после выполнения вышеуказанных команд. Здесь есть одна строка, соответствующая шаблону.
Пример 3: определение шаблона регулярного выражения с помощью функции gsub
В gsub () функция используется для глобального поиска и замены текста. Следующая команда 'awk' будет искать слово 'Scanner' и заменять его словом 'Router' перед печатью результата.
продукты $ cat.текстПродукты $ awk 'gsub (/ Scanner /, "Router")'.текст
Следующий вывод будет произведен после выполнения вышеуказанных команд. В одной строке содержится слово 'Сканер', а также 'Сканер'заменяется словом'Маршрутизатор'перед печатью строки.
Пример 4: Определите шаблон регулярного выражения с помощью '*'
Следующая команда 'awk' будет искать и печатать любую строку, которая начинается с 'Mo' и включает любой последующий символ.
продукты $ cat.текст$ awk '/ Mo * / print $ 0' продуктов.текст
Следующий вывод будет произведен после выполнения вышеуказанных команд. Три строки соответствуют шаблону: две строки содержат слово 'Мышь'и одна строка содержит слово'Монитор'.
Пример 5: определение шаблона регулярного выражения с помощью символа '$'
Следующая команда 'awk' будет искать и печатать в файле строки, оканчивающиеся на цифру 5.
продукты $ cat.текст$ awk '/ 5 $ / print $ 0' продуктов.текст
Следующий вывод будет произведен после выполнения вышеуказанных команд. В файле только одна строка, которая заканчивается цифрой 5.
Пример 6: Определите шаблон регулярного выражения, используя '^' и '|' символы
'^символ 'обозначает начало строки, а'|'символ обозначает логическое ИЛИ. Следующая команда 'awk' будет искать и печатать строки, начинающиеся с символа 'п'и содержать либо'Сканер' или же 'Мышь'.
продукты $ cat.текст$ awk '/ ^ p.* (Сканер | Мышь) / 'продукты.текст
Следующий вывод будет произведен после выполнения вышеуказанных команд. Выходные данные показывают, что две строки содержат слово 'Мышь'и одна строка содержит слово'Сканер'. Три строки начинаются с символа 'п'.
Пример 7: определение шаблона регулярного выражения с помощью символа '+'
'+'оператор используется для поиска хотя бы одного совпадения. Следующая команда 'awk' будет искать и печатать строки, содержащие символ 'п' Хотя бы один раз.
продукты $ cat.текст$ awk '/ n + / print' продуктов.текст
Следующий вывод будет произведен после выполнения вышеуказанных команд. Здесь персонаж 'п'contains встречается хотя бы один раз в строках, содержащих слова Монитор, принтер и сканер.
Пример 8: определение шаблона регулярного выражения с помощью функции gsub ()
Следующая команда awk будет искать слово 'Принтер'и замените его словом'Монитор' с помощью функция gsub ().
продукты $ cat.текст$ awk 'gsub (/ Printer /, «Monitor») print $ 0' продукты.текст
Следующий вывод будет произведен после выполнения вышеуказанных команд. Четвертая строка файла содержит слово 'Принтер'дважды, а на выходе'Принтер'был заменен словом'Монитор'.
Заключение
Многие символы и функции могут использоваться для определения шаблонов регулярных выражений для различных задач поиска и замены. Некоторые символы, обычно используемые в шаблонах регулярных выражений, применяются в этом руководстве с помощью команды awk.