【超高速全文検索】ripgrepとは?簡単・便利な使い方を解説!

  • このエントリーをはてなブックマークに追加
  • Pocket

こんにちは。タクマ™ [@suwaru_blog] です。

昔どこかに置いたテキストファイルを見つけて中身を確認したい
理解していないプロジェクトファイルから、それっぽい単語でそれっぽいファイルを探したい

こういうことやりたいときってありませんか?ファイル探すのって結構めんどくさいですよね…

こんな経験はないですか?

PC の検索窓・エディターの検索機能を使ったら…

  • コレジャナイ検索結果😇
    • 絞りこんでも結果が返ってこない
  • リモートサーバのファイルだからエディターの検索機能がつかえない😇

そんなとき grep や ripgrep を使うのがいいですよ

Linux コマンド初心者にはとっつきにくいと感じるかもしれませんが、
grep コマンドを使うのがシンプルにして最強の解決方法です!

たとえば grep -r [キーワード] ./* というコマンドを使うと、
現在ディレクトリ以下「全ファイルの中身をキーワード検索」します。
ここで ripgrep というライブラリを使うと、もっと簡単な記述で高速検索も実現できます!

Web 開発では、かなりの頻度でファイル調査が伴うので grep はマスターした方がいいですよ。

今回はその全文検索ライブラリ ripgrep の導入・使い方について解説します!

ripgrep とは

一言で言うと rg コマンドで全文検索してくれる grep ライブラリです。

全文検索とは

指定キーワードが文章中に含まれていたら、そのファイル名と該当箇所を全て表示する検索機能です。

  • ripgrep では拡張子・エンコードの種類を無視して全文検索が可能
  • しかし圧縮ファイルの中身は grep 不可能
    • 圧縮ファイルの中身を grep したいときは zgrep コマンドなど使いましょう

前提知識

コマンドでディレクトリ移動できるだけの知識があれば ripgrep をはじめることができます!

ripgrep 動作環境

ご心配なく!どの OS でも ripgrep は動きます!

が、すみません… Windows 確認環境がないのでインストール方法を省略させてください。
こちらから ripgrep ダウンロードして PATH を通せばいいみたいです。

ripgrep のインストール方法

Mac

Mac で Terminal アプリ、もしくは iTerm2 を起動してください。
個人的には iTerm2 がおすすめです。理由は後述します。

brew install

brew コマンドを使ったことない方は こちら から Homebrew をインストールしてください。

下記コマンドで ripgrep をインストールしてください。

brew install ripgrep

Linux

GitHub の「Installation」項目に詳しいインストール方法が記載されています。
ここでは「RHEL / CentOS 7」と「Debian / Ubuntu」の方法を引用しておきます。

RHEL / CentOS 7

sudo yum-config-manager --add-repo=https://copr.fedorainfracloud.org/coprs/carlwgeorge/ripgrep/repo/epel-7/carlwgeorge-ripgrep-epel-7.repo
sudo yum install ripgrep

Debian / Ubuntu

curl -LO https://github.com/BurntSushi/ripgrep/releases/download/0.8.1/ripgrep_0.8.1_amd64.deb
sudo dpkg -i ripgrep_0.8.1_amd64.deb && rm ripgrep_0.8.1_amd64.deb

ripgrep の使い方

cd コマンドでファイルがありそうなディレクトリに近づいて rg [キーワード] するだけ!

こんな感じで実行します

下記画像では cd ~/Desktop で移動した後 rg コマンドで 「ripgrep」キーワードで検索しています。
メモディレクトリの中の ripgrepについて.txt の中身がヒットしているのがわかりますね。

rg ripgrep の実行結果

iTerm2 を使うとファイルをそのまま開ける

Mac ユーザが iTerm2 で ripgrep を使うとワンクリックでファイルも開けます!
先程の画像だと ripgrepについて.txt というファイル名を ⌘ クリック すればファイルが開きます。

# iTerm2 じゃなければ open コマンドを使いましょう
~/Desktop % open メモ/ripgrepについて.txt

iTerm2 をもっと知りたい方はこちら

iTerm2 はカラースキームが豊富で、ウインドウを半透明にできたりします。
また画面分割したり、全画面同時操作もできたりと多機能で非常におすすめです!

よくやる ripgrep の使い方

プロジェクトファイルで、どこになにがあるか分かっていないとき…

  • ブラウザのデベロップツールの情報を頼りに ripgrep
    • デベロップツールから見れる class 名で ripgrep
    • デベロップツールから見れるメソッド名で ripgrep
  • エラーログに対して ripgrep
    • 現在日時でエラーが出ていないか ripgrep
    • 何かしらのキーワードでエラーが出ていないか ripgrep

こんな感じでガリガリ検索をかけていきます。
慣れると知らないライブラリやプラグインの中身も修正できますよ。

全文検索を使いこなそう!

世の中のスーパーエンジニアは経験と知識でガリガリコードをコードを書いていきます。
しかし、それ以上にめっちゃ検索をかけます。検索能力が異常に高いです。

プログラミング初心者が全文検索を覚えるとそれだけで一つ上のステージに上がれます。

ripgrep は知る人ぞ知る的なライブラリなので知名度はそこまでですが、
僕はもっと早くに知りたかったなーということでご紹介しました!

参考リンク

ripgrep は奥が深く、正規表現でもっと複雑な検索が出来たりもします。
もっと詳しく知りたい人のために参考リンクを貼っておきます。

関連記事

zsh ロードマップ

お仕事ください!

僕が代表を務める 株式会社 EeeeG では Web 制作・システム開発・マーケティング相談を行っています。
なにかお困りごとがあれば、Twitter DM や Web サイトからお気軽にご相談ください。

コメント

コメントを残す

*