数多くあるUnixコマンドの中でも,
とはいえgrepは機能がシンプル過ぎるため,
とはいえこれはもう6年も前の記事です。ag以降も,
ripgrepとは
ripgrepとは,
同サイトによると,
- 検索ツールとして必要なほとんどの機能が含まれており,
他のツールの大抵のユースケースを置き換えることができる。 - デフォルトでディレクトリを再起的に検索する。.gitignoreを見て不要なファイルを除外し,
隠しファイルやバイナリは無視する。 - 検索対象を特定のファイルタイプに限定して検索できる。カスタムマッチングルールを使えば,
新しいファイルタイプにも対応できる。 - 複数パターンの検索,
色つきの強調表示, Unicodeの完全なサポートといった豊富な機能がある。 - Unicodeをサポートしながらも高速である。
- 正規表現エンジンニPCRE2を使用できる。これにより正規表現の先読み,
後読み, 後方参照が利用できる。 - EUC-JPやShift-JISをサポートしている。
- gzip,
bzip2, xzなどの圧縮ファイルの中からも検索できる。 - 様々な前処理フィルタをサポートしている。これによってPDFやサポート外の圧縮ファイルなどにも対応できる。
agと同じく
ripgrepのインストール
Ubuntu 19.
aptコマンドでripgrepをインストール
$ sudo apt install ripgrep
また,
snapでripgrepをインストール
$ sudo snap install ripgrep --classic
本記事執筆時点
- ※1
- バージョンがいきなり飛んでいるように見えるかもしれませんが,
0. 10. 0リリースの次が11. 0.0リリースとなっています (参考: https:// github. com/ BurntSushi/ ripgrep/ blob/ master/ CHANGELOG. md)。
ripgrepを使ってみる
ripgrepの実行コマンド名は
ripgrepのコマンドの書式
$ rg [OPTIONS] PATTERN [PATH ...]
見ての通り,
「–help」
- マッチしたファイル名のみを表示する
「-l」 オプション。 - 大文字小文字の区別をしない
「-i」 オプション, 逆に区別する 「-s」 オプション (※2)。 - マッチした行の前後行も表示する
「-A」 「-B」 オプション。 - ファイルごとに,
マッチした件数を表示する 「-c」 オプション。 - 隠しファイルを検索対象にする
「–hidden」 オプション。
- ※2
- rgではデフォルトで大文字小文字を区別します
(-sオプション付加状態)。これはデフォルトで大文字小文字を区別しない (-iオプション付加状態) のagとは逆なので注意してください。
「-t」
Markdownファイルに検索対象を限定する例
$ rg -tmd PATTERN
とすることで,