15 практических примеров команд Grep в Linux / UNIX

 

Фото любезно предоставлено Alexôme’s

Вы должны получить представление о команде grep в Linux.

Это часть текущей серии «15 примеров», в которой будет предоставлено 15 подробных примеров для конкретной команды или функции..

В этой статье мы рассмотрим 15 практических примеров использования команды grep в Linux, которые будут очень полезны как новичкам, так и экспертам.

Сначала создайте следующий demo_file, который будет использоваться в приведенных ниже примерах для демонстрации команды grep.

1. Найдите заданную строку в одном файле.

Основное использование команды grep – поиск определенной строки в указанном файле, как показано ниже.

2. Проверка данной строки в нескольких файлах.

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

3. Поиск без учета регистра с использованием grep -i

Это также базовое использование grep. Это ищет данную строку / шаблон без учета регистра. Таким образом, все слова, такие как «the», «THE» и «The» нечувствительны к регистру, как показано ниже.

4. Сопоставьте регулярное выражение в файлах

Это очень мощная функция, если вы можете эффективно использовать регулярные выражения. В следующем примере выполняется поиск всего шаблона, который начинается с «линий» и заканчивается «пустым» с чем-либо промежуточным. т.е. для поиска «строк [что-либо промежуточное] пустое» в demo_file.

Из документации по grep: за регулярным выражением может следовать один из нескольких операторов повторения:

  • ? Предыдущий элемент является необязательным и соответствует не более одного раза.
  • *Предыдущий элемент будет найден ноль или более раз.
  • + Предыдущий элемент будет найден один или несколько раз.
  • {n} Предыдущий элемент встречается ровно n раз.
  • {n,} Предыдущий элемент встречается n или более раз.
  • {, m} Предыдущий элемент встречается не более m раз.
  • {n, m} Предыдущий элемент встречается не менее n раз, но не более m раз.

5. Проверка полных слов, а не подстрок, с помощью grep -w

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

Следующий пример – это обычная команда grep, в которой выполняется поиск «is». Когда вы ищете «is», без какой-либо опции будет отображаться «is», «his», «this» и все, что имеет подстроку «is».

Следующий пример – это команда WORD grep, в которой выполняется поиск только слова «есть». Обратите внимание, что этот вывод не содержит строки «В этой строке все первые символы слова с верхним регистром», хотя «is» присутствует в «This», так как следующее ищет только слово «is». », А не для« этого ».

6. Отображение строк до / после / вокруг совпадения с помощью grep -A, -B и -C

При выполнении команды grep для огромного файла может быть полезно увидеть несколько строк после совпадения. Возможно, вам будет удобно, если grep может показать вам не только совпадающие строки, но и строки после / до / вокруг совпадения.

Создайте следующий файл demo_text для этого примера

6.1 Отображение N строк после совпадения

-A – это опция, которая печатает указанные N строк после совпадения, как показано ниже.

В следующем примере печатается совпадающая строка вместе с тремя строками после нее.

6.2 Отображение N строк перед совпадением

-B – это опция, которая печатает указанные N строк перед совпадением.

Когда у вас была возможность отображать N строк после совпадения, у вас есть опция -B для противоположного.

6.3 Отображение N строк вокруг совпадения

-C – это опция, которая печатает указанные N строк перед совпадением. В некоторых случаях может потребоваться, чтобы совпадение отображалось линиями с обеих сторон. Эта опция показывает N строк с обеих сторон (до и после) совпадения.

7. Выделение поиска с помощью GREP_OPTIONS

Поскольку grep печатает строки из файла по заданному вами шаблону / строке, если вы хотите, чтобы он выделял, какая часть соответствует строке, вам нужно выполнить следующий путь.

Когда вы выполните следующий экспорт, вы получите выделение совпадающих поисков. В следующем примере все это будет выделено, если вы установите переменную среды GREP_OPTIONS, как показано ниже.

8. Рекурсивный поиск во всех файлах с помощью grep

-r Если вы хотите выполнить поиск во всех файлах в текущем каталоге и его подкаталоге. Параметр -r – это тот, который вам нужно использовать. В следующем примере будет выполняться поиск строки «ramesh» во всех файлах в текущем каталоге и во всех его подкаталогах.

9. Инвертируйте совпадение с помощью grep -v

У вас были разные варианты отображения совпадающих линий, отображения линий до совпадения, отображения линий после совпадения и выделения совпадений. Так что вам определенно понадобится опция -v для инвертирования совпадений.

Если вы хотите отобразить строки, которые не соответствуют заданной строке / шаблону, используйте параметр -v, как показано ниже. В этом примере будут отображены все строки, которые не соответствуют слову «go».

10. отобразить строки, которые не соответствуют всему заданному шаблону.

11. Подсчет количества совпадений с помощью grep -c

Если вы хотите подсчитать, сколько строк соответствует заданному шаблону / строке, используйте параметр -c.

Когда вы хотите узнать, сколько строк соответствует шаблону

Если вы хотите узнать, сколько строк не соответствует шаблону

12. Отобразите только те имена файлов, которые соответствуют заданному шаблону, используя команду grep -l.

Если вы хотите, чтобы grep отображал только те имена файлов, которые соответствуют заданному шаблону, используйте параметр -l (L в нижнем регистре).

Когда вы вводите несколько файлов в grep, он отображает имена файлов, которые содержат текст, соответствующий шаблону, что будет очень удобно, когда вы попытаетесь найти некоторые заметки во всей структуре каталогов.

13. Показать только совпавшую строку

По умолчанию grep покажет строку, которая соответствует заданному шаблону / строке, но если вы хотите, чтобы grep отображала только соответствующую строку шаблона, используйте параметр -o.

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

14. Укажите позицию совпадения в строке.

Если вы хотите, чтобы grep показывал позицию, в которой он соответствует шаблону в файле, используйте следующие параметры как

Примечание. Результат выполнения приведенной выше команды grep – это не позиция в строке, а смещение в байтах для всего файла.

15. Показывать номер строки при отображении вывода с помощью grep -n

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


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

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