ag:超高速全文検索、コード探索の切り札

目次
agコマンド(The Silver Searcher)についての概要と詳細
agコマンドとは
ag
コマンドは、「The Silver Searcher(シルバーサーチャー)」という正式名称で知られる、高速な全文テキスト検索ツールです。LinuxやUNIX系OS、macOSなどで利用でき、従来のgrep
やack
、rg(ripgrep)
と並んで、開発者やシステム管理者に人気があります。大規模なソースコードリポジトリやテキストデータの中からキーワードや正規表現パターンを迅速に検索できるのが最大の特長です。
主な用途
- ソースコードやドキュメント内の特定キーワード検索
- 大量のファイルやディレクトリにまたがるパターンマッチング
- grepコマンドの高速・高機能な代替としての利用
主な特徴
- 高速な検索:大規模なディレクトリやファイル群でも高速にパターン検索が可能
- 標準で再帰検索:サブディレクトリを含めてカレントディレクトリ以下を自動で検索
- .gitignore等の自動除外:バージョン管理などの除外ファイルを自動で考慮し、不要なファイルやディレクトリをスキップ
- 色分け表示:検索結果のキーワード部分を見やすくカラー表示
- 多彩な出力オプション:行番号やファイル名表示、パスの省略や絞り込み、統計表示などが可能
- PCRE正規表現対応:高度な正規表現パターンでの検索が可能
- 軽量・シンプル:Rust製のripgrepに比べてC言語で書かれ、依存関係も少なく導入が簡単
基本的な使い方
ag [検索パターン] [ディレクトリやファイル]
ag error
:カレントディレクトリ以下で「error」を含む行をすべて検索ag -i failed
:大文字小文字を区別せず「failed」を検索ag '^def '
:Pythonの関数定義行のみ抽出(正規表現)ag --python import
:拡張子が.pyのファイルだけを対象に「import」を検索ag TODO ~/project/
:指定ディレクトリ以下で「TODO」を検索
主なオプション一覧
オプション | 説明 |
---|---|
-i | 大文字小文字を区別しない |
-w | 単語単位で完全一致検索 |
-v | 一致しない行のみ表示 |
-n | 行番号を表示 |
-l | 該当ファイル名のみを表示 |
-c | マッチ件数のみ表示 |
-G [パターン] | ファイル名でフィルタ(例:-G '\.md$' でMarkdownだけ検索) |
--python | Pythonファイルのみ対象 |
--stats | 検索結果の統計情報も表示 |
インストール方法
RPM系(RedHat, CentOS, Fedoraなど)
$ sudo dnf install the_silver_searcher
Debian系(Debian, Ubuntuなど)
$ sudo apt install silversearcher-ag
その他・最新版: 公式GitHubからソース・バイナリを入手可能。
まとめ
ag(The Silver Searcher)は、grepに代わる高速で使いやすい全文検索ツールです。大規模プロジェクトやソースコード管理、日常のテキスト検索に幅広く活用でき、コマンドラインでの作業効率を大きく向上させます。
grepやrgと併用しながら、自分に合った検索ツールとしてぜひ導入してみてください。