メモメモメモ

ほんとうにめも

findコマンドを駆使してた僕がripgrepを使って幸せになれた話

今まで

こんなコマンドを自作していた

function fn() {
  ignore=$3
  find $1 -type f | xargs grep -n${ignore} --color=always $2
}

これを~/.zsh_aliasとかに置いて、 fn src hoge みたいな感じで使うとsrcディレクトリ以下のhogeというワードを探す処理をしてくれる。 アウトプットは↓のような感じ。 f:id:yooska14:20190912190139p:plain

どのファイルの何行目でどんな感じで使われているのかが分かるので「便利コマンド作った俺、神!」って思ってた。

しかし出会ってしまった

ripgrepというツールに出会ってしまった。 github.com

インストールから使い方までREADMEを見ればとりあえず問題なし。 オプションについてはこっちのGUIDEを見ると良い。 https://github.com/BurntSushi/ripgrep/blob/master/GUIDE.md

基本的には rg hogeのようにして使う。 ディレクトリを指定してなくてもgitignoreされてるディレクトリ以下は無視してくれるので無駄が少ない。 ↓アウトプットはこんな感じ。 f:id:yooska14:20190912190332p:plain

また、--no-ignoreを付けるとgitignoreされてるディレクトリ・ファイルも含めて検索してくれるらしい。 f:id:yooska14:20190912190518p:plain

Rust製なのね。fdも似たような検索機能をファイル検索で提供してくれるみたいなので気になっている。