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

Для поиска в содержании файлов в Линуксе удобно использовать сочетание комманд find и grep.
Это позволяет производить рекурсивный поиск в папках, а также отображает полный путь к файлам, содержащим искомую строку.
[code]
find . -type f -exec grep -Hn «emacs» {} \; 2>/dev/null
[/code]
Результат:
./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:

[code]
grep -Hn «string» *
[/code]

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

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