Рекурсивный поиск в содержании файлов

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

find . -type f -exec grep -Hn "emacs" {} \; 2>/dev/null

Результат:
./anaconda-ks.cfg:56:emacs
./install.log:282:Installing emacs-leim-21.4-24.el5.x86_64
./install.log:592:Installing emacs-common-21.4-24.el5.x86_64
./install.log:781:Installing emacs-21.4-24.el5.x86_64
./install.log:792:Installing emacspeak-23.0-3.el5.noarch

Строка 2>/dev/null скрывает ошибки типа grep: line too long, появляющиеся при попытке поиска в бинарных файлах.
Для ограничения глубины поиска в папках, используйте ключ -maxdepth X. Где X is >0.

Для поиска строки в текущей директории, достаточно одной комманды grep:

grep -Hn "string" *

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

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