Припустімо, ви шукаєте файл у Linux, але забули його назву. Ви пам'ятаєте лише вміст файлу. Як ви знайдете файл у цьому випадку? Ну, є кілька корисних методів, які допоможуть вам знайти файл, що містить певний текст (або рядок) у Linux. Рядок має вказати користувач. Отже, давайте розглянемо методи:
Методи пошуку всіх файлів, що містять певний текст (рядок) у Linux
Спосіб 1: команда grep
команда grep в Linux, який використовується для пошуку файлів, що містять певний текст або рядок. За замовчуванням він показує нам рядки у файлах, які містять певний текст. Якщо ми додамо до нього параметр -l, команда покаже нам усі файли, які містять певний текст.
приклад:
Припустимо, у нас є каталог, який містить два файли з іменами file1.txt і file2.txt.
Вміст файлу 1.txt:
This line contains text.>
Вміст файлу file2.txt:
You should learn Data Structures & Algorithms.>
Тепер ми використаємо команду grep з опцією -l для пошуку тексту в заданих файлах, розташованих у поточному каталозі. Перегляньте наступний приклад:

алгоритм Крускалса
З наведеного вище прикладу можна чітко сказати, що команда grep успішно знайшла заданий рядок у file1.txt. У результаті на екрані з’явилося ім’я файлу.
Ми також можемо використати параметр -i, щоб сказати grep ігнорувати регістр. Подивіться на наступний приклад:

Вище ми вперше використали попередню команду, але поданий рядок є Текст. Оскільки file1.txt містить текст, а не Text, він не береться до уваги. Тут пошукова операція виконується з урахуванням справи. Потім ми використали опцію -i. У результаті регістр ігнорується, а заданий рядок збігається з тим, що містить file1.txt. Таким чином, ім'я файлу відображається на екрані.
Іншим варіантом є використання параметра -r. Він пропонує grep рекурсивно шукати заданий рядок у поточному каталозі та його підкаталогах. Подивіться на приклад нижче:

file1.txt і file2.txt знаходяться в папці з файлами, а не в поточному каталозі, тобто на робочому столі. Отже, якщо ми не використовуємо параметр -r, файли з відповідними рядками не будуть знайдені, оскільки вони не існують у поточному каталозі. Але ми використали параметр -r і також опустили імена файлів. У результаті grep шукає відповідні рядки не лише в поточному каталозі, а й у його підкаталогах. Отже, file1.txt знайдено та показано на екрані.
Спосіб 2: поєднання команд find і grep
знайти ще одна корисна команда в Linux. Ми поєднаємо find з опцією -type f для пошуку файлів і опцією -exec для застосування до grep для знайдених файлів. Подивіться на наступний приклад:

Зрозуміло, що операція пошуку знаходить файл file1.txt, оскільки він містить відповідний рядок. Таким чином, ім'я файлу відображається на екрані.
Спосіб 3: знайдіть файли, що містять певний текст, за допомогою mc
Ми також можемо шукати файли за допомогою Midnight Commander (mc). Відкрийте програму та натисніть Alt + Shift + ? щоб відкрити діалогове вікно «Знайти файл». Угорі ви побачите вікно «Початок». У полі введіть шлях до файлів. Потім у полі вмісту введіть рядок, який потрібно шукати. У нашому випадку ми шукали текст у каталозі файлів:
що таке java hashmap

Нижче чітко видно, що операція пошуку успішно знайшла файл file1.txt, який містить відповідний рядок.

Спосіб 4: команда ripgrep
ripgrep (записується як rg) — це команда, яку можна використовувати як альтернативу команді grep. Реалізація наведена нижче:

file1.txt знайдено, і, отже, ім’я файлу відображається на екрані.
Спосіб 5: команда ack
Ще одна команда, яку ми можемо використовувати, це команда ack. Ось реалізація:

file1.txt успішно знайдено та відображено на екрані.