Як випливає з назви grep, шаблон для пошуку описується за допомогою регулярного виразу. Регулярний вираз - це особливий тип рядка, який описує шаблон, який відповідає, знаходить і управляє. Щоб дізнатись більше про grep та регулярні вирази, ознайомтесь із використанням grep та egrep із регулярним виразом.
Для демонстраційних цілей візьміть зразок текстового файлу. У цьому прикладі завантажте загальну публічну ліцензію GNU v3.0 текстовий файл.
Основний пошук
Основним способом використання grep є пошук базового рядка.
Погляньте на наступну команду grep. Він буде шукати слово "GNU" у текстовому файлі.
$ grep "GNU" gpl-3.0.txt
Щоб показати номер рядка, використовуйте прапор «-n».
$ grep -n “GNU” gpl-3.0.txt
Щоб виконати пошук без урахування регістру за допомогою grep, використовуйте прапор “-i”.
$ grep -ni “gnu” gpl-3.0.txt
Можливо, ви не хочете бачити збіги пошуку, а лише ім’я файлу, де збіг стався в деяких ситуаціях. Щоб надрукувати лише ім'я файлу, використовуйте прапорець -l. Тут зірочкою позначено використання всіх текстових файлів у поточному каталозі.
$ grep -l “gnu” *
Ми також можемо направити вихід інших команд до grep.
$ кішка gpl-3.0.txt | grep -n “GNU”
Регулярний вираз
Regex пропонує розумний спосіб точної настройки пошуку. Це має свої правила. Однак різні програми та мови програмування реалізують регулярний вираз по-різному. Ось кілька прикладів, які ви можете використовувати з grep.
Щоб визначити, що рядок потрібно знайти на початку рядка, використовуйте символ каретки (^).
$ grep -n “^ GNU” gpl-3.0.txt
Щоб визначити, що рядок знаходиться в кінці рядка, використовуйте знак долара ($).
$ grep -n “до $” gpl-3.0.txt
Щоб описати, що в певному місці шаблону може бути будь-який символ, використовуйте символ крапки (.). Наприклад, вираз «G.U "є дійсним, якщо між" G "та" U "є будь-який символ.
$ grep -n “G.U ”gpl-3.0.txt
Щоб описати, що в певному місці шаблону може бути підмножина символів, використовуйте дужки ([]). Наприклад, вираз "t [wo] o" говорить про те, що збіг дійсний лише для "двох" і "занадто".
$ grep -n “t [wo] o” gpl-3.0.txt
Розширений регулярний вираз
Як випливає з назви, розширений регулярний вираз може робити більш складні речі, ніж базові регулярні вирази. Щоб використовувати розширений регулярний вираз з grep, вам слід використовувати прапор “-E”.
$ grep -nE Для пошуку двох різних рядків використовуйте оператори АБО (|).
$ grep -nE “GNU | Загальні | Ліцензія” gpl-3.0.txt
Пошук тексту у файлах
Тепер йде основна частина. Замість того, щоб вручну вказувати grep-файлу виконувати пошук, grep може зробити це автоматично. У наступній команді grep використовуватиме всі доступні текстові файли в поточному каталозі для пошуку за шаблоном.
$ grep * Якщо ви хочете grep виконати пошук в іншому каталозі, вам слід вказати місце розташування.
$ grep
Якщо є папки, grep не досліджує їх за замовчуванням. Щоб сказати grep шукати рекурсивно, використовуйте прапор “-R”.
$ grep -nR
Графічний інтерфейс Grep
Якщо ви віддаєте перевагу роботі з графічним інтерфейсом, але все ж хочете насолоджуватися функціями grep, перевірте searchmonkey. Це інтерфейсне рішення для grep. Пакет доступний майже на всіх основних дистрибутивах Linux.
Знайдіть текст у файлах за допомогою nano
GNU Nano - це простий і потужний текстовий редактор, який постачається з будь-яким дистрибутивом Linux. Він має вбудовані функції для пошуку тексту в текстовому файлі.
Зверніть увагу, що у цьому методі вам потрібно відкрити текстовий файл та здійснити пошук вручну. Це можливо, якщо для роботи існує лише кілька текстових файлів. Якщо є більше, то використання grep є найбільш оптимальним вибором.
Відкрийте текстовий файл у нано.
$ нано
Для пошуку збігу рядків натисніть “Ctrl + W”. Набравши рядок для пошуку, натисніть “Enter”.
Знайдіть текст у файлах за допомогою Vim
Vim - відомий і відомий текстовий редактор. Це еквівалент командного рядка сучасного текстового редактора. Vim має безліч розширених функцій, таких як плагіни, макроси, автозавершення, фільтри тощо.
Подібно до nano, Vim одночасно працює з одним файлом. Якщо у вас кілька текстових файлів, то використання grep є найбільш оптимальним способом.
Для пошуку в текстовому файлі спочатку відкрийте його у Vim.
$ vim
Введіть наступну команду Vim і натисніть “Enter”.
$: /
Знайдіть текст у файлах за допомогою текстового редактора GNOME
Текстовий редактор GNOME - це текстовий редактор, який постачається з робочим столом GNOME. Це спрощений текстовий редактор з усіма основними функціями, яких ви очікували. Це приємна альтернатива текстовим редакторам командного рядка.
Подібно до nano та vim, така ж обережність застосовується до цього методу. Якщо кількість текстових файлів велика, то краще дотримуйтесь grep.
Відкрийте текстовий файл у текстовому редакторі. Натисніть “Ctrl + F”, щоб відкрити рядок пошуку.
Знайдіть текст у файлах за допомогою VS Code
Visual Studio Code - це потужний текстовий редактор з безліччю функцій. Він оптимізований для використання програмістами так, ніби це повноцінна IDE. Він доступний майже на всіх основних дистрибутивах Linux.
Встановіть пакувальний пакет Visual Studio Code.
$ sudo snap-код встановлення --classic
Відкрийте текстовий файл у VS Code. Натисніть “Ctrl + F”, щоб розпочати пошук.
Заключні думки
Існує безліч способів пошуку тексту у файлах. Опанувати це легке завдання. Настійно рекомендується освоїти команду grep, оскільки вона пропонує найбільше значення з точки зору ефективності та простоти використання.
Якщо ви віддаєте перевагу графічному інтерфейсу, то на вибір є численні текстові редактори. Будь-який сучасний текстовий редактор надасть можливість пошуку тексту.
Щасливих обчислень!