パイプでつないでgrep?: Railsチュートリアル備忘録 - 8章


調べた内容を3分で振り返ることができるようにメモ

パイプ機能でコマンドをつなぐ?grep?
親切に”ターミナルの”と表記されているのがポイントでした

演習内容

ターミナルのパイプ機能を使ってrails routesの実行結果とgrepコマンドを繋ぐことで、Usersリソースに関するルーティングだけを表示させることができます。同様にして、Sessionsリソースに関する結果だけを表示させてみましょう。現在、いくつのSessionsリソースがあるでしょうか?
(Railsチュートリアル 第6版 8.1.1)

パイプ?

|(パイプ)
わかりやすくて大好きです
コマンドの出力結果を次に渡す処理をする

grep

ファイル中の文字列に対して正規表現を使って検索し表示するLinuxコマンド
(今回は理解した気になって進みます)

使ってみる

rails routesを実行すると

$ rails routes
Prefix Verb   URI Pattern   Controller#Action
root GET    /   static_pages#home
help GET    /help(.:format)   static_pages#help
about GET    /about(.:format)   static_pages#about
contact GET    /contact(.:format)   static_pages#contact
signup GET    /signup(.:format)   users#new
login GET    /login(.:format)   sessions#new
POST   /login(.:format)   sessions#create
logout DELETE /logout(.:format)   sessions#destroy
.
.
.                                                                    

ここから"sessions"を含む行だけを得たい
rails routes | grep sessions

$ rails routes | grep sessions
login GET    /login(.:format)   sessions#new
POST   /login(.:format)   sessions#create
logout DELETE /logout(.:format)   sessions#destroy

ちょっと応用(AND検索)
rails routes | grep sessions | grep login

$ rails routes | grep sessions
login GET    /login(.:format)   sessions#new
POST   /login(.:format)   sessions#create