ack == grep для программиста

Для тех, кто как и я, ведет разработку не в IDE, а при помощи простого редактора + утилит комстроки, я бы хотел рассказать о маленькой но очень удобной утилитке ack.

Как понятно из заголовка, эта программка — вариация на тему grep, но с некоторыми приятными дополнениями, которые упрощают типичные паттерны использования grep программистом. Итак, ack:

  1. «Знает» о служебных директориях SCM-систем, таких как CVS/.svn, и игнорирует их содержимое. В случае, например, SVN, это очень удобно, т.к. в этих директориях хранится полная копия рабочей копии и при использовании grep приходится делать | grep -v .svn.
  2. Имеет рекурсивный поиск по умолчанию. Лично мне уже надоело дописывать -r к каждому вызову grep. А вам?
  3. «Понимает» поиск по типам файлов. Можно сказать, например ack --python, чтобы поиск шел в только в *.py файлах либо ack  text-align static/ --nojs --nohtml для поиска во всех типах файлов кроме *js и *html.
  4. Поддерживает популярные ключи 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.

Підписуйтеся на Telegram-канал редакції DOU, щоб не пропустити найважливіші статті.

👍НравитсяПонравилось0
В избранноеВ избранном0
Подписаться на автора
LinkedIn



Підписуйтесь: Soundcloud | Google Podcast | YouTube


3 комментария

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

Адская штука. Сначала решил не ставить, только описание почитал. Подумалось: "а зачем? Велосипед."А тут таки попробовал... привыкание моментальное.Пасиб.

поскольку мне лень ставить Perl на windows, то я в качестве упражнения переписал ее на питоне (частично, правда, все ключи не реализовал). И, да! Добавил поддержку Bazaar.: -)

Подписаться на комментарии