Если вкратце, то:
user@host:~$ grep -Rni word /directory
Теперь подробнее. Что такое grep, вы, скорее всего, уже знаете. Эта утилита используется как фильтр вывода текстовой информации в консоли.
- -R — grep обойдёт каталог рекурсивно (проходя по симлинкам, если симлинки не нужны — то -r)
- -n — grep выведет номер строки в результатах
- -i — case insensetive поиск (т.е. не учитывается регистр букв).
- word — указываем слово, которое ищем
- /directory — указываем директорию. Например /home/$user/docs
Несколько примеров.
user@host:~$ grep -rn word /home/inky/docs/
/home/inky/docs/doc1.txt:11:some word here
/home/inky/docs/doc1.txt:11:some word here
В 11й строке файла /home/inky/docs/doc1.txt содержится слово word (после 11: выводится сама строка)
user@host:~$ grep -Rni "few words" /home/inky/docs/
/home/inky/docs/doc1.txt:19:few words here
/home/inky/docs/doc1.txt:19:few words here
В 19й строке файла нашлось словосочетание few words.
Ну и пример с egrep:
user@host:~$ grep -Rni -E '(word1|word2|word3)' /home/inky/docs/
/home/inky/docs/doc1.txt:20:word1
/home/inky/docs/doc1.txt:21:word2
/home/inky/docs/doc1.txt:22:word3
/home/inky/docs/doc1.txt:20:word1
/home/inky/docs/doc1.txt:21:word2
/home/inky/docs/doc1.txt:22:word3
Мы искали word1 или word2 или word3. В 20й строчке нашлось word1, в 21й — word2, в 22й — word3.
Использую я это в основном для поиска iframe на хостинг-серверах. Иногда полезно также найти что-либо в каталогах с большим количеством конфигурационных файлов.
Enjoy =)
Отлично расписано, то что искал… СПС
Полезная информация для тех у кого unix хостинг, очень помогло при поиске копирайтов в шаблонах.
Спасибо автору! Помогло найти одну настройку, которую вручную уже замучился искать. А тут одна команда и проблема решена =)
Спасибо большое, очень полезно все описано
grep -R config /etc/ #найдет все где есть кусок config(например fontconfig,configure)
grep -Rw config /etc/ #найдет все где есть только config
grep -Rwh config /etc/ #выведет найденные результаты без вывода файлов, в которых они найдены
grep -Rwl #только файлы , в которых есть совпадения
шел 2020й.
мы по-прежнему читаем твой бложек.
пасиб те.
Да не за что, заходите)
Канеш зайдем!!!
Жаль, кое-кто пессимиздит иногда, и перестал сюда писать)
День добрый. А как скопировать найденные файлы?
Что-то в районе for i in `find … | awk -F «:» ‘{print $1}’`; do cp $i /somewhere/ ; done можно попробовать, например.
Я так сделал:
find /home/vmail/vp/cur/ -type f -exec grep -HiIl «To: office@vp.com» {} \; | xargs -n 1 -I % cp -v —parents «%» /home/OFFICE/
Ну тоже вариант )
Как искать не строчки, то что находится между ними?
Регулярками перловыми для грепа, думаю
А как искать все то же самое только в txt и log файлах?