findコマンドを駆使してた僕がripgrepを使って幸せになれた話
今まで
こんなコマンドを自作していた
function fn() { ignore=$3 find $1 -type f | xargs grep -n${ignore} --color=always $2 }
これを~/.zsh_alias
とかに置いて、
fn src hoge
みたいな感じで使うとsrcディレクトリ以下のhogeというワードを探す処理をしてくれる。
アウトプットは↓のような感じ。
どのファイルの何行目でどんな感じで使われているのかが分かるので「便利コマンド作った俺、神!」って思ってた。
しかし出会ってしまった
ripgrep
というツールに出会ってしまった。
github.com
インストールから使い方までREADMEを見ればとりあえず問題なし。
オプションについてはこっちのGUIDE
を見ると良い。
https://github.com/BurntSushi/ripgrep/blob/master/GUIDE.md
基本的には rg hoge
のようにして使う。
ディレクトリを指定してなくてもgitignoreされてるディレクトリ以下は無視してくれるので無駄が少ない。
↓アウトプットはこんな感じ。
また、--no-ignore
を付けるとgitignoreされてるディレクトリ・ファイルも含めて検索してくれるらしい。
Rust製なのね。fd
も似たような検索機能をファイル検索で提供してくれるみたいなので気になっている。