The Silver Searcher のススメ

The Silver Searcher のススメ by @1000ch

@1000ch

Web アプリケーション開発を専門とするソフトウェアエンジニア。企業で働く傍ら、技術顧問として複数企業のエンジニアリングに関わり、高品質で維持しやすい Web アプリケーションを作るための活動を続けている。

The Silver Searcher のススメ by @1000ch

ファイルの中身を検索するときに何を使っている?

  • grep: Linux に標準搭載されている
  • ack: grep より高速に動作する
The Silver Searcher のススメ by @1000ch

The Silver Searcher というものがあります

The Silver Searcher のススメ by @1000ch

The Silver Searcher?

  • ack よりも速い
  • ack よりもコマンドが短い
  • .gitignore の内容を検索対象から除外
  • オプションが直感的で便利
The Silver Searcher のススメ by @1000ch

ベンチマーク vs ack

$ ack test_blah ~/code/
// => 104.66s user 4.82s system 99% cpu 1:50.03 total

$ ag test_blah ~/code/
// => 4.67s user 4.58s system 286% cpu 3.227 total
The Silver Searcher のススメ by @1000ch

インストール via Homebrew

$ brew install the_silver_searcher
The Silver Searcher のススメ by @1000ch

keyword で検索

# keyword で検索
$ ag keyword

# keyword で folder 配下を検索
$ ag keyword folder
The Silver Searcher のススメ by @1000ch

検索オプションはいろいろ

# 圧縮されたファイルも検索
$ ag -z/--search-zip keyword

# パターンにマッチするファイル・フォルダを検索
$ ag -G/--file-search-regex '\.(js|json)' keyword

# 隠しファイルも検索
$ ag --hidden keyword

# 全ファイルを検索
$ ag -u/--unrestricted keyword

# JS ファイルを検索
$ ag --js keyword
The Silver Searcher のススメ by @1000ch

出力のオプションもいろいろ

# マッチしたファイル名だけ表示
$ ag -l/--files-with-matches keyword

# マッチしなかったファイル名だけ表示
$ ag -L/--files-without-matches keyword

# マッチした回数を表示
$ ag -c/--count keyword

# マッチした行のみ表示
$ ag -o/--only-matching keyword
The Silver Searcher のススメ by @1000ch

所感

  • タイプ数が少ないのは結構大きい
  • プロジェクトが大きくてもログが膨大でも大丈夫
  • yum でも apt-get でも使えるのでサーバーに入れる価値ある
The Silver Searcher のススメ by @1000ch

おしまい

The Silver Searcher のススメ by @1000ch