Ripgrep — современный вариант grep

Ripgrep — современный вариант grep


Ripgrep написана на Rust. Она понимает регулярные выражения, игнорирует ресурсы указанные в . gitignore, а главное он работает намного быстрее.

Почему ripgrep?

Есть несколько причин:

smart - как говорилось выше понимает .gitignore, не следует за символическими ссылками, пропускает бинарные и скрытые файлы

fast - быстрый, сотни файлов, в разы быстрее чем аналоги,быстрее оригинального grep.

Ещё одна сильная сторона ripgrep — это более удобный и наглядный вывод результатов поиска.

На сегодня текущий релиз ripgrep - 12.1.1, загрузить можно при помощи curl:

  • curl -LO https://github.com/BurntSushi/ripgrep/releases/download/12.1.1/ripgrep-12.1.

  • 1-x86_64-unknown-linux-musl.tar.gz

Далее распаковать архив:

  • tar -xf ripgrep-12.1.1-x86_64-unknown-linux-musl.tar.gz

Скопировать бинарь в нужное место:

  • cp ripgrep-*/rg /usr/local/bin/

Проверить установку:

  • rg –help

Поиск будет выглядеть так(в моем случае):

  • rg -i alt .

Приведём некоторые базовые ключи и приемы использования ripgrep:

  • rg content main.py — поиск подстроки content в файле main.py;

  • rg image . — поиск подстроки (рекурсивно) content во всех каталогах текущей директории;

  • rg -i content — поиск подстроки (рекурсивно) content во всех каталогах текущей директории без учета регистра;

  • rg -s content — умный поиск подстроки (рекурсивно) content во всех каталогах текущей директории;

  • rg -F ‘(?.content)’ — поиск с учетом специальных символов без экранирования;

  • rg content -g ‘*.py’ — поиск подстроки content только в файлах с расширением .py;

  • rg content -g ‘!.py’ — поиск подстроки content во всех файлах кроме файлов с расширением .py;

  • rg -l content — показать только название файлов, где найдена подстрока content;

  • rg -v content — инвертированный поиск. Показывает файлы, где не найдена подстрока content;

  • rg –count content — показать количество строк с найденным вхождением подстроки content;

  • rg –count-matches content — показать количество вхождений подстроки content в файле;

  • rg content –stats — вывести отчет о количестве найденных построчных совпадений, вхождений, количестве файлов;

  • rg content –sort modifi/path — отсортировать полученный список совпадений по времени изменения или пути.

Ключи и опции поиска можно комбинировать.

Так же прикрепляю пару ссылок о grep.

Регулярные выражения и команда grep

Команда grep: опции, регулярные выражения и примеры использования