あらためて知ったけどRubyはワンライナーも便利
$ ruby -n -e 'puts $_ if $_ =~ /\/\//' < hoge.js
とかすると、'//'の入っている行だけ抜き出せたり、いろんなことが出来る...
ポイントは-e
オプションと-n
オプション。while ... end ループで標準入力からの1行づつ読み込んで-e '...'
のスクリプトを実行してくれる。
くわしくはruby --help
で参照
覚えておくと便利な組み込み変数たち
- $_
- 最後に読み込んだ内容
- $1..$n
- カッコ付きの正規表現を指定したときにn番目のカッコに対応する文字を抜き出す
以下のページにいろいろ載っている。
組み込み変数 - Rubyリファレンスマニュアル
メモ的にワンライナー貼っておく
template.jsからfunction定義っぽい行を抜き出すワンライナー
ruby -n -e 'puts $_ if $_=~/^\s+\w+:\sfunction/' < template.js
上記の発展版、function名と思われる文字列を抜き出すワンライナー。正規表現にマッチした箇所を抜き出している。
ruby -n -e 'puts $1 if $_=~/^\s+(\w+):\sfunc/' < template.js
上記をさらに発展、Wikiなどに簡単に貼れるように整形して出力する
ruby -n -e 'puts $1+$2 if $_=~/^\s+(\w+):\s*function\s*\w*(\(.*\))/' < template.js