ag (The Silver Searcher) – 高速なコード検索コマンド

検索・探索
スポンサーリンク

ag コマンド(The Silver Searcher)は、ソースコード検索に特化した非常に高速なテキスト検索ツールです。
ack を参考に開発され、デフォルトで .gitignore などを考慮し、不要なファイルを除外して効率的に検索できます。

構文(Syntax)

ag [オプション] <パターン> [パス...]

主なオプション一覧

オプション説明使用例
<パターン>正規表現で検索ag TODO
<パス>検索対象ディレクトリやファイルを指定ag error ./logs
-i大文字小文字を無視ag -i error
-w単語単位で検索ag -w main
-lマッチしたファイル名のみ表示ag -l FIXME
-cファイルごとのマッチ数を表示ag -c TODO
--stats検索の統計情報を表示ag --stats foo
--hidden隠しファイル・ディレクトリも対象にするag --hidden secret
--ignore DIR/PATTERN特定のディレクトリやパターンを無視ag --ignore node_modules
--depth Nディレクトリ探索の深さを制限ag --depth 2 TODO
--followシンボリックリンクをたどるag --follow pattern

実行例

“TODO” を含む行を検索

ag TODO

出力例:

src/main.py:12:    # TODO: implement login
tests/test_app.py:5:    # TODO: write unit tests

大文字小文字を無視して検索

ag -i error ./logs

ファイル名だけを表示

ag -l FIXME

出力例:

src/lib.rs
src/utils.rs

マッチ数を表示

ag -c def

出力例:

src/main.py:3
src/utils.py:1

隠しファイルも検索対象にする

ag --hidden password

特定のディレクトリを無視

ag --ignore node_modules foo

ディレクトリ深さを制限

ag --depth 1 TODO

検索統計を表示

ag --stats function

出力例:

matches found: 42
files searched: 10
time taken: 0.012s

エラー例(パターン未指定)

ag

出力例:

Usage: ag [FILE-TYPE] [OPTIONS] PATTERN [PATH]

関連コマンド

  • grep : 標準的なテキスト検索コマンド。
  • ack : ag の設計に影響を与えた検索ツール。
  • ripgrep (rg) : ag よりさらに高速で現在主流の検索ツール。

備考

  • ag は C で実装されており、速度が非常に速いのが特徴です。
  • デフォルトで .gitignore.hgignore.agignore を尊重します。
  • 近年では ripgrep (rg) のほうが推奨されるケースが多いですが、ag は軽量でシンプルなため依然として利用されています。

参考

スポンサーリンク
Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント