пятница, 5 июня 2009 г.

Долго мы искали ....

Есть в *nix системах замечательное понятие скрытых файлов и папок, это все те, имена, которых начинаются с . (точки). От кого же они скрыты? От lsи ВСЕ! И как же быть если и grep и find их видит? И так я хочу что бы по-честному grep  не искал в скрытых файлах и в файлах, которые находтся в скрытых папках. Зачем мне это нужно: а есть у меня прокет -  много-много папочек, целое деревце, и проект я забирала из svn и в каждой папочке имею подпапочку с именем .svn. Когда я ищу что-то по проекту, grep проходит и через них. таким образом дублирую как бы результать поиска - не удобно. особенно, если много. Кроме того у меня grep версии 2.5.чего-то там и у него нет ключа -exclude-dir.

И так сама я решение не нашла, хотя былда близка мне помогли :) , но что бы его не забыть ВОТ ОНО!

find где_искать -type f -not -path '*/.*' -exec grep -Hn что_искать '{}' \;

Но! у решения есть один недостаток файлы в коре "где_искать" он не обрабатывает. правда мне не критично. :)

-Hn - это что бы показывало путь к файлу и номер строки - нужно если искать в emacs.

Кто подскажет еще изящные способы решения проблемы :) буду благодарна.

«Долго мы искали, долго мы искали,
(обошли деревни, сёла, города)
мальчика, который любит чистить зубы
и девочку, которая не плачет никогда…»

«Долго мы искали, долго мы искали,
и вдруг мы отыскали без всякого труда,
девочку, которая любит чистить зубы,
и мальчика, который не плачет никогда».

(С) Олег Супруненко

Моя фотография
http://aal.flamber.ru - мой фотоальбом