grep どうしてる?
自分が grep する際によく使うもののメモ。
- ツール
- VSCode
VSCoder なのでそのまま検索バーに打ち込むことが多い。大文字小文字区別、単語区切りがボタンひとつでトグルできるのがよい git grep
結果をターミナルやファイルに書き出したいときによく使うfd
grep ではないがファイル名一覧を出したいときはfd
を使う。rails routes -g
お仕事の routes が異常に複雑なのでrails routes -g
の結果を grep に渡して # でヒットなどもよくやる。rails routes -g foo/bar/baz | grep baz#
のような雰囲気。baz_controller
やbaz_hoge_controller
がたくさんあるので。
- VSCode
- 正規表現
.*
- メソッド呼び出し箇所を調べたい時
Author#books
のメソッド呼び出しはauthor.books
a.books
note.authors.map(&:books)
かもしれない。author.*books
a.*books
のようにして結果を見ながら調整する - 雑に検索したい時
- メソッド呼び出し箇所を調べたい時
\b
- 単語区切りを明確にしたい時
notification
を抽出したくてnotifications
は要らない時はnotification\b
と書く。super_users
は不要でusers
のみ欲しい時は\busers
と書く
- 単語区切りを明確にしたい時
- grep とは関係ないがコマンド出力などをいい感じに整えたい時にも
,
と\n
を置換したり(その逆も)もする
- スクリプト
検索結果が多い時や「Foo という名前空間のコントローラで」「bar というメソッドを呼んで」など検索条件が複数になる時はスクリプトを書く。 Ruby は文字列操作が柔軟にできるし Rails アプリのことは Rails に聞けば文字列操作よりもかんたんかつ正確にわかるのでとてもべんり