agで特定の拡張子のファイルだけに対して再帰的に検索したいなと思っていたけどやり方がわからなかった。*.txtは可能だけど再帰的に検索してくれないし、**/*.txtは受け付けてくれないし……。Twitterでボヤいたら「ag -Gとかあるんだ」とかエアーを見たので調べてみたらまさにこれだった。

-Gオプションでは正規表現を使ってファイル名を指定する。

$ ag foo -G \.txt$

これで.txtで終わるファイルからのみ再帰的に検索できる。よく使うファイル名のパターンを指定済みのエイリアスをいくつか作っておくと良さそう。