Для поиска текста используем следующую команду:
grep -rnw ‘directory’ -e «pattern»
Пример:
$ grep -rnw ‘/var/www/’ -e «DOCTYPE html»
Если выводится слишко много информации то можно добавить команду “less”
$ grep -rnw ‘/var/www/’ -e «DOCTYPE html» | less
Где:
-r — рекурсивно
-n — номер строки
-w — соответствует целому слову
Наряду с этим, —exclude или —include параметр может быть использован для эффективного поиска. Что-то вроде этого:
grep —include=*.{c,h} -rnw ‘directory’ -e «pattern»
В этом случае, поиск будет только по файлам, которые имеют .c или .h расширения.
Другие примеры:
$ grep —include=*.{php,html} -rnw ‘/var/www/’ -e «DOCTYPE html»
искать в .php и .html
$ grep —include=*.html -rnw ‘/var/www/’ -e «DOCTYPE html»
искать в .html
Аналогично использование команды —exclude:
Образец:
grep —exclude=*.o -rnw ‘directory’ -e «pattern»
Исключает из поиска все файлы с расширением .o
Кроме этого мы можем работать и с директориями:
grep —exclude-dir={dir1,dir2} -rnw ‘directory’ -e «pattern»
—exclude-dir исключить каталог
$ grep —exclude-dir={html,html1} -rnw ‘/var/www/’ -e «DOCTYPE html»
Исключаем каталоги html, html1 и все файлы с расширением .t
$ grep —exclude-dir={html,html1} —exclude=*.t -rnw ‘/var/www/’ -e «DOCTYPE html»
Исключаем каталог html
$ grep —exclude-dir=html -rnw ‘/var/www/’ -e «DOCTYPE html»
Следующая команда find для поиска файлов:
find [directory] -name «Имя файла»
Примеры:
$ find /var/www/html1 -name *.txt
Найти все файлы изображений:
$ find /home/vlad ( ( -name *.[Jj][Pp][Ee][Gg] ) -or ( -name *.[Pp][Nn][Gg] ) -or ( -name *.[Bb][Mm][Pp] ) )
$ find /var/www/ -type f -name index.php // -type f — для файлов
$ find /var/www/ -type d -name css // -type d — для директорий
Автор: Vladimir Semenovich
