ack == grep для программиста
Макс ИщенкоОпубликовано 8.10.2007 в Статьи
Для тех, кто как и я, ведет разработку не в IDE, а при помощи простого редактора + утилит комстроки, я бы хотел рассказать о маленькой но очень удобной утилитке ack.
Как понятно из заголовка, эта программка – вариация на тему grep, но с некоторыми приятными дополнениями, которые упрощают типичные паттерны использования grep программистом. Итак, ack:
- “Знает” о служебных директориях SCM-систем, таких как
CVS/.svn, и игнорирует их содержимое. В случае, например, SVN, это очень удобно, т.к. в этих директориях хранится полная копия рабочей копии и при использованииgrepприходится делать| grep -v .svn. - Имеет рекурсивный поиск по умолчанию. Лично мне уже надоело дописывать -r к каждому вызову grep. А вам?
- “Понимает” поиск по типам файлов. Можно сказать, например
ack --python, чтобы поиск шел в только в *.py файлах либоack text-align static/ --nojs --nohtmlдля поиска во всех типах файлов кроме *js и *html. - Поддерживает популярные ключи grep, как-то
-wили-l.
Я использую ack уже несколько месяцев и очень доволен. Она с лихвой заменила мне мою собственную “версию” grep ( function pygrep () { grep -r --exclude="*svn-base" --exclude="*pyc" --exclude="*bak" "$@"; })
Так что рекомендую. Установка труда не составляет, т.к. это всего один файл:
wget -O ~/bin/ack <a href="http://ack.googlecode.com/svn/tags/latest/ack-standalone" class="linkification-ext" title="Linkification: http://ack.googlecode.com/svn/tags/latest/ack-standalone">http://ack.googlecode.com/svn/tags/latest/ack-standalone</a> && chmod a+x ~/bin/ack.
Понравилась статья? Подпишись на обновления по RSS/E-mail

Классная утилитка!
поскольку мне лень ставить Perl на windows, то я в качестве упражнения переписал ее на питоне (частично, правда, все ключи не реализовал). И, да! Добавил поддержку Bazaar.
Адская штука. Сначала решил не ставить, только описание почитал. Подумалось: “а зачем? Велосипед.”
А тут таки попробовал… привыкание моментальное.
Пасиб.