Поиск в файлах на сервер - grep

Lord Maverik
На сайте с 15.04.2003
Offline
471
394

Подскажите плз, как найти все файлы у которых имя начинается с config, расширение php и которые содержат строку 'motive' ? При этом надо рекурсивно все папки обойти.

Я сейчас ищу такой командой:


grep -Hr "motive" /var/www/

Но это оооочень долго, так как файлов ооочень много. А мне то по сути нужно рекурсивно но в определенных файлах.

RedMall.Ru (https://redmall.ru) - Товары из Китая (Таобао, Tmall) с проверкой качества, скидка для форумчан 7% Партнерская программа 2 уровня: 5% + 5%. Подробнее. (https://redmall.ru/about/partner/)
emariaru
На сайте с 26.10.2010
Offline
73
#1

так попробуйте

find /var/www/ -type f -iname "config*.php" -exec grep -Him1 'motive' {} \;

Lord Maverik
На сайте с 15.04.2003
Offline
471
#2
emariaru:
так попробуйте
find /var/www/ -type f -iname "config*.php" -exec grep -Him1 'motive' {} \;

Спасибо, получилось :)

А что значит вот это? "{} \"

[Удален]
#3
Lord Maverik:
А что значит вот это? "{} \"

плейсхолдер найденного файла,

раз отвечаю, то можно проще, используя только grep:


grep -rl "motive" --include "config*php" /var/www/


---------- Добавлено 10.06.2015 в 18:40 ----------

бонус метода: интереса ради посмотрел работает в несколько раз быстрее ( зависит от кол-ва файлов )

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий