ripgrep とは
ripgrep(コマンドは rg)は、Andrew Gallant が Rust で書いた行指向の検索ツールです。.gitignore のルールを尊重しながらカレントディレクトリを再帰的に正規表現で検索し、隠しファイル、無視されたファイル、バイナリファイルを自動で飛ばします。VS Code などのエディタの検索エンジンでもあり、一般に GNU grep、The Silver Searcher、ack より高速です。
--engine auto、より詳しい --json 出力、そして正規表現エンジンの着実な高速化。アーカイブ版は、その多くより前のものです。
⚡ ripgrep の主な機能
🚀 とにかく速い
有限オートマトンの正規表現エンジン、SIMD によるリテラル走査、メモリマップ、並列のディレクトリ走査により、大きなツリーでは grep より高速です。
🙈 .gitignore を尊重
既定で無視ファイル、隠しファイル、バイナリを飛ばすので、本当に見たい結果だけが残ります。-u、-uu、-uuu で上書きできます。
🌍 Unicode に完全対応
既定で Unicode を理解します。文字クラス、大文字小文字の畳み込み、単語境界、書記素の扱いがすべて正しく動き、速度もほとんど落ちません。
🧩 PCRE2 正規表現
-P で先読み・後方参照が使えます。このビルドは PCRE2 を組み込み済みで、JIT を有効にした状態でそのまま動きます。
📄 ファイル種別でのフィルタ
-t rust で言語を絞り、-T html で除外し、独自の種別も定義できます。800 を超える glob を最初から内蔵しています。
🔁 複数行検索と置換
-U で行をまたいで検索し、-r で置換結果をプレビューし、--json で構造化された結果を出力できます。
apt upgrade を実行するだけで、常に最新版を使い続けられます。
📦 deb.griffo.io からインストールする
ステップ 1: リポジトリを追加する
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updatesudo apt install extrepo
sudo extrepo enable griffo
sudo apt update🆓 ずっと無料のミラーがあります。 deb-free.griffo.io は、アカウントもサブスクリプションもなしでパッケージをずっと無料で配布しています。上流より最大2か月遅れ、セキュリティ修正は即座に公開されます。現在収録しているのは cliamp、Ghostty、lazydocker、Oh My Posh と Zed です。ripgrep は含まれていないため、今日入手する方法は上のリポジトリだけですが、ご要望があれば追加できます。
🧩 extrepo オプションについて。 extrepo は外部リポジトリを扱う Debian 標準のツールです。署名済みメタデータと照合して鍵を検証したうえで、sources ファイルの作成と署名鍵のインストールを代わりに行います。このリポジトリは griffo、ずっと無料のミラーは griffo-free という名前で登録されているので、Debian(bookworm、trixie、forky、sid)では上のコマンドだけで設定は完了です。
extrepo が用意するのは sources ファイルと鍵だけなので、サブスクリプションの認証情報は引き続き /etc/apt/auth.conf.d/deb.griffo.io.conf に書きます。extrepo は Debian のスイート向けメタデータしか公開していないため Ubuntu は対象外です。Ubuntu では sudo または root のコマンドを使ってください。
ステップ 2: ripgrep をインストールする
# 最新の ripgrep をインストール
sudo apt install ripgrep
# インストールを確認
rg --version# 最新の ripgrep をインストール
apt install ripgrep
# インストールを確認
rg --versionステップ 3: シェル補完
# bash・zsh・fish の補完はパッケージに同梱、# 設定は不要です。新しいシェルを開いて Tab を押してください:
rg --ty<Tab>
# man ページも一緒にインストールされます
man rg🎯 基本的な使い方
日常的な検索:
# カレントディレクトリ以下を検索
rg 'TODO'
# 大文字小文字を区別せず、単語単位で
rg -i -w 'timeout'
# 一致箇所の前後 3 行を表示
rg -C 3 'panic!'
# 一致があったファイルだけを一覧
rg -l 'BurntSushi'検索対象を絞り込む:
# Rust のファイルだけ
rg -t rust 'unsafe'
# HTML と CSS 以外すべて
rg -T html -T css 'font-size'
# 無視ファイルと隠しファイルも対象に
rg -uu 'password'
# glob で絞り込む
rg -g '*.toml' 'version'素の grep を超えて:
# PCRE2 による先読みと後方参照
rg -P '(?<=fn )\w+' src/
# 行をまたいで検索
rg -U 'struct \w+ \{\n[^}]*pub'
# 置換結果をプレビュー(ファイルは書き換えません)
rg 'v(\d+)\.(\d+)' -r 'v$1.$2.0'
# スクリプト向けの構造化出力
rg --json 'error' | jq -r 'select(.type=="match") | .data.path.text'🔧 ツール連携
ripgrep は、多くのツールが前提にしている検索バックエンドです:
- fzf:
rgを入力元にした、ライブリロードの対話 grep - Neovim / Telescope: PATH にあれば
live_grepが ripgrep を使います - Helix: グローバル検索は同じ内部クレートで動いています
- bat: ripgrep のヒット箇所をハイライト付きでプレビュー
- Yazi: ripgrep を土台にしたファイルマネージャの検索
🚀 deb.griffo.io を選ぶ理由
- 公式 Debian: 提供はあるが、リリース時点のバージョンで固定
- 手動インストール: Rust ツールチェイン、あるいはバイナリと補完の手動管理が必要
- deb.griffo.io: 最新版を自動更新でお届け
- ✅ 最新の機能: ripgrep の新しいフラグ、エンジンの改良、性能改善
- ✅ セットアップ不要: ビルド済みバイナリなので、cargo build は要りません
- ✅ 自動更新: 上流のリリースから数時間以内にパッケージを更新
- ✅ 全部入り:
rg、rg.1man ページ、bash / zsh / fish の補完 - ✅ 依存なし: PCRE2 を組み込んだ静的リンクの musl ビルド
- ✅ マルチディストリビューション: Bookworm、Trixie、Forky、Sid で動作
- ✅ 手間のかからない運用: 更新は通常の apt コマンドだけ
📦 パッケージのビルドリポジトリ
Debian パッケージは、この GitHub リポジトリで自動的にビルド・管理されています:
- 🔎 ripgrep-debian - 最新リリースのビルド
🔗 関連パッケージ
deb.griffo.io では、こちらも配布しています:
- fzf - ripgrep と組み合わせて対話的に検索できるファジーファインダー
- eza - モダンな ls の代替
- zoxide - 賢い cd コマンド
- Yazi - ファイル検索に ripgrep を使います
.gitignore を尊重する grep が欲しい方、rg を呼び出すエディタやツールを使っている方、大きなディレクトリツリーでの検索速度を気にする方。