mojavy.com

rubyのワンライナーで便利な変数まとめ

July 08, 2012 at 06:30 PM | categories: ruby |

ruby

$.

現在の行番号を表します。awkでいうNRと同じです。

ruby -ne 'puts "#{$.},#{$_}"'

$-i

この値を文字列で上書きするとin-place置換を行うようになります。オリジナルのファイルはここで指定した文字が拡張子についたファイルとして保存されます。オリジナルファイルが不要なら空文字を設定すればOKです。

ruby -ne 'BEGIN{$-i=".old"}; puts($_) if /foo/' path/to/file

$/

入力の区切り文字を表わす文字です。デフォルトは改行です。

ruby -ne 'BEGIN{$/=","}; p $_'

$, 、$;

$, はjoinのデフォルト区切り文字で、$; はsplitのデフォルト区切り文字です。 ワンライナーではjoinとsplitをよく使うと思うので、BEGINで上書きしておけばワンライナーを多少短く書けます。

ruby -ne 'BEGIN{$,="\t";$;=","}; puts $_.split.join'

まとめ

まだ他にも知らないテクニックがたくさんありそうですが、新しく見つけたら追記していきます。

参考


blog comments powered by Disqus

About Me

pic
mojavy

Recent posts






Categories



Badges