自分が 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.booksa.booksnote.authors.map(&:books)かもしれない。author.*booksa.*booksのようにして結果を見ながら調整する - 雑に検索したい時
- メソッド呼び出し箇所を調べたい時
\b- 単語区切りを明確にしたい時
notificationを抽出したくてnotificationsは要らない時はnotification\bと書く。super_usersは不要でusersのみ欲しい時は\busersと書く
- 単語区切りを明確にしたい時
- grep とは関係ないがコマンド出力などをいい感じに整えたい時にも
,と\nを置換したり(その逆も)もする
- スクリプト
検索結果が多い時や「Foo という名前空間のコントローラで」「bar というメソッドを呼んで」など検索条件が複数になる時はスクリプトを書く。 Ruby は文字列操作が柔軟にできるし Rails アプリのことは Rails に聞けば文字列操作よりもかんたんかつ正確にわかるのでとてもべんり