Как найти файл содержащий определенный текст в Linux-е

Одной из самых быстрых команд для поиска файлов в Linux-е является команда find. Но к сожалению с ним невозможно производить поиск текста.

Для этой задачи есть другая очень полезная команда - grep. С помощью grep вы можете найти файлы, содержащие определенный текст. Прелесть команды grep в том, что он ещё поддерживает и регулярные выражения.

Синтаксис команды GREP

Синтаксис очень прост:

grep "текст, который нужно найти" /папка

Как и многие команды в Linux-е, grep поддерживает параметры.

Например, если передать параметр -r, команда совершит рекурсивный поиск:

grep -r "текст, который нужно найти" /папка

Примеры использования команды grep

Допустим я хочу произвести поиск только в текстовых файлах:

grep "текст" /home/ubuntu/*.txt

По умолчанию команда выводит очень большое количество информации. Если нужно вывести только путь к файлам, то можно передать параметр -H:

grep -H -r "текст" /home/ubuntu/*.txt