rg(ripgrep:リップグレップ)は、Rust製で開発された超高速なテキスト検索コマンドです。従来の grep と比べて圧倒的に速く、デフォルトで .gitignore を考慮して node_modules などの不要なディレクトリを自動除外してくれます。
【OS別】ripgrep インストールコマンド早見表
| OS・環境 | インストールコマンド(コピペOK) |
|---|---|
| Windows(winget) | winget install BurntSushi.ripgrep |
| Windows(scoop / choco) | scoop install ripgrep または choco install ripgrep |
| macOS(Homebrew) | brew install ripgrep |
| Ubuntu / Debian | sudo apt update && sudo apt install ripgrep |
| RHEL / CentOS / AlmaLinux | sudo dnf install ripgrep |
| Rust(Cargo) | cargo install ripgrep |
【目的別】rgコマンド主要オプション逆引き早見表
| やりたいこと | コマンド(コピペOK) | 主なオプション |
|---|---|---|
| ディレクトリ内を再帰検索 | rg '検索キーワード' | 引数なしで自動再帰検索 |
| 大文字・小文字を区別せず検索 | rg -i 'error' | -i(ignore-case) |
| スマート大文字小文字判定 | rg -S 'Error' | 大文字が含まれる場合のみ区別 |
| ファイルタイプ(拡張子)で絞り込み | rg -t py 'def main' | -t(–type: py, js, rust, md等) |
| 隠しファイル(.env等)も検索対象に | rg --hidden 'API_KEY' | --hidden |
| .gitignoreの除外を無視して検索 | rg --no-ignore 'secret' | --no-ignore |
| マッチしたファイル名だけを表示 | rg -l 'TODO' | -l(files-with-matches) |
| 完全な単語単位で検索 | rg -w 'id' | -w(word-regexp) |
| 固定文字列として検索(記号対応) | rg -F 'user.data[0]' | -F(fixed-strings) |
| 特定のグロブパターンを含める/除外 | rg --glob '*.spec.ts' 'test' | --glob |
ripgrepと従来のgrepは何が違うのか?
ripgrep(rg) は、VS Code の内部検索エンジンにも採用されている実績のあるツールです。標準の grep と比較した主なメリットは次の4点です。
| 比較項目 | 従来の grep | ripgrep(rg) |
|---|---|---|
| 検索速度 | 単一スレッド処理が基本 | マルチスレッドで極めて高速 |
| 再帰検索 | -r や find 連携が必要 | 標準でカレント配下を再帰検索 |
| .gitignore / 除外設定 | 手動で --exclude-dir が必要 | .gitignore を自動認識してスキップ |
| デフォルト表示 | プレーンテキスト | 行番号・色付き・見出し付きで見やすい |
| 言語別絞り込み | --include="*.js" など | -t js, -t rust など直感的な短縮名 |
実務で使える rg コマンドの具体例
1. 言語やファイルタイプで絞り込んで検索(-t)
プロジェクト内の特定言語のファイルだけを高速に検索できます。
# Pythonファイル(*.py)から検索
rg -t py 'import requests'
# TypeScript/JavaScriptファイルから検索
rg -t ts -t js 'useEffect'
# 対応ファイルタイプ一覧を確認する
rg --type-list
2. .env などの隠しファイルや無視ファイルも含めて検索
通常の rg では .env や .github/ などのドットファイル、.gitignore に指定されたファイルは検索されません。これらを含めたい場合は以下のオプションを指定します。
# 隠しファイルも含めて検索
rg --hidden 'DATABASE_URL'
# .gitignore を無視して(node_modules 等も含めて)全検索
rg --no-ignore 'package-lock'
# 隠しファイルも無視ファイルもすべて検索(-u 2回で最上位の全検索)
rg -uu 'target_string'
3. 特定のディレクトリやグロブを除外する
# min.js や dist フォルダを除外して検索
rg --glob '!*.min.js' --glob '!dist/*' 'initApp'
4. マッチしたファイル一覧を他のコマンドに渡す(-l と xargs)
# TODO を含むファイル一覧を取得してエディタで開く
rg -l 'TODO' | xargs code
設定ファイル(~/.ripgreprc)で自分好みにカスタマイズ
環境変数 RIPGREP_CONFIG_PATH を設定することで、常に適用したいオプション(スマートケース検索やカスタムタイプなど)を定義できます。
# ~/.bashrc や ~/.zshrc に追記
export RIPGREP_CONFIG_PATH="/home/www-data/.ripgreprc"
# ~/.ripgreprc の例
--smart-case
--hidden
--glob=!.git/*
まとめ
- 基本検索:
rg 'キーワード'だけで再帰&高速検索 - インストール: Windows(winget)、Mac(brew)、Linux(apt)ですぐ導入可能
- ファイル絞り込み:
-t(言語タイプ)や--hidden(隠しファイル)を活用

コメント