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: опции, регулярные выражения и примеры использования