Поиск по сайту:
Полноте, люди, сквернить несказанными яствами тело (Овидий).

Grep для нескольких строк и шаблонов

15.05.2020
Grep для нескольких строк и шаблонов

Grep это мощный инструмент командной строки, который позволяет вам искать в одном или нескольких входных файлах строки, соответствующие регулярному выражению, и записывать каждую соответствующую строку в стандартный вывод.

В этой статье мы покажем вам, как использовать grep в GNU для поиска нескольких строк или шаблонов.

 

Grep. Несколько шаблонов

grep в GNU поддерживает три синтаксиса регулярных выражений: Basic, Extended и Perl-совместимый. Если тип регулярного выражения не указан, grep интерпретирует шаблоны поиска как базовые регулярные выражения.

Для поиска нескольких шаблонов используйте оператор or (чередование).

Оператор чередования |(конвейер) позволяет указывать различные возможные совпадения, которые могут быть литеральными строками или наборами выражений. Этот оператор имеет самый низкий приоритет среди всех операторов регулярных выражений.

Синтаксис для поиска нескольких шаблонов с использованием grep основных регулярных выражений выглядит следующим образом:

grep 'pattern1\|pattern2' file...

 

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

При использовании основных регулярных выражений метасимволы интерпретируются как буквенные символы. Чтобы сохранить специальные значения метасимволов, их необходимо экранировать обратной косой чертой (\). Вот почему мы избегаем оператора or (|) с косой чертой.

Чтобы интерпретировать шаблон как расширенное регулярное выражение, вызовите команду grep с параметром -E (или –extended-regexp). При использовании расширенного регулярного выражения не экранируйте оператор |:

grep -E 'pattern1|pattern2' file...

 

Grep. Несколько строк

Литеральные строки – самые основные образцы.

В следующем примере мы ищем все вхождения слов fatal, error и critical в журнале файла ошибки Nginx:

grep 'fatal\|error\|critical' /var/log/nginx/error.log

 

Если искомая строка содержит пробелы, заключите ее в двойные кавычки.

Вот тот же пример, использующий расширенное регулярное выражение, которое устраняет необходимость экранирования оператора |

grep -E 'fatal|error|critical' /var/log/nginx/error.log

 

Читать  Как исключить в Grep

По умолчанию учитывается регистр grep. Это означает, что прописные и строчные символы рассматриваются как разные.

Для того, чтобы игнорировать регистр при поиске, призовите grep with с параметром -i (или –ignore-case):

grep -i 'fatal\|error\|critical' /var/log/nginx/error.log

 

При поиске строки grep будет отображаться все строки, в которых строка встроена в более крупные строки. Так что, если вы искали «error», grep также напечатает строки, в которых «error» встроена в более крупные слова, такие как «errorless» или «antiterrorists».

Чтобы вернуть только те строки, в которых указанная строка представляет собой целое слово (заключенное не в словах), используйте параметр -w (или –word-regexp):

grep -w 'fatal\|error\|critical' /var/log/nginx/error.log

 

Символы в слове включают буквенно-цифровые символы (az, AZ и 0-9) и подчеркивания (_). Все остальные символы рассматриваются как несловесные символы.

Для более подробной информации о параметрах grep, посетите нашу статью Команда Grep.

 

Вывод

Мы показали вам, как grep ищет несколько шаблонов, строк и слов.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


4 комментария на «“Grep для нескольких строк и шаблонов”»

  1. Алексей:

    Клёво, полезная статья!

  2. Ubuntoid:

    Огонь, отдуши

  3. Алексей:

    СПАСИБО!!!

  4. никита:

    клево

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

**ссылки nofollow

Это может быть вам интересно


Рекомендуемое
Своп - это пространство на диске, которое используется, когда объем…

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: