UniversalCodeGrep — утилита для быстрого поиска по исходникам
4К открытий4К показов
UniversalCodeGrep (ucg) создана, чтобы искать по коду быстрее, чем grep и так же удобно, как Ack. Исходный код доступен на GitHub, инструкции по установке и использованию есть далее в статье.
По замыслу создателей, ucg должна полностью удовлетворять нетерпеливых программистов, которым нужно быстро найти что-то в большом количестве файлов с исходниками. Утилита написана на С++11 и использует параллелизм (и другие фишки этого стандарта С++) для ускорения сканирования, одновременно улучшая за счёт этого возможности по портированию на различные системы. Регулярные выражения поддерживаются за счёт библиотеки PCRE с применением JIT компиляции, что также даёт неплохой буст скорости на большинстве платформ.
Для сравнения приводятся результаты сканирования исходников Boost 1.58.0 на Fedora 23, использовались ucg 0.2.0, ag 0.30.0, ack 2.14:
UniversalCodeGrep также быстрее самого grep на 25%.
Установка
На Ubuntu можно сделать так:
На Red Hat/Fedora/CentOS:
Бинарные RPM для OpenSUSE доступны здесь.
Или можно установить из исходников:
Зависимости
Для установки вам понадобятся gcc версии не ниже 4.8 (в более ранних нет достаточной поддержки С++11), а также pcre версии 8.2 или выше.
Поддерживаемые ОС и дистрибутивы
Проверка была проведена на следующем:
- Ubuntu 15.04
- CentOS 7
- Fedora 22
- Fedora 23
- RHEL 7
- SLE 12
- openSUSE 13.2
- openSUSE Leap 42.1
- Windows 7 + Cygwin 64-bit (однако скорость на винде почти как в
ag
)
Использование
Вызовы ucg такие же, как и для ack или ag:
Здесь PATTERN — это PCRE-совместимое регулярное выражение.
Подробнее
Более детально с инструментом можно ознакомиться на странице проекта.
4К открытий4К показов