Ruby one-liner
自分なりの書き方まとめ。
- エイリアスを設定。 alias rol='ruby -n -e' または alias rol='ruby -p -e'。
- 前者は、入力を処理した結果を出力しない。後者は、出力する。各オプションの正確な意味はリファレンスを参照。
- rol '(Rubyコード)' filename とすると、 filename 中のテキストが一行ずつ$_ に格納され、Rubyコードがそれを処理していく。
例えば、次のようにone-linerを実行できる。
$ alias rol='ruby -p -e' $ cat myfile def strlen-comp(str, len) if str.length == len return true else return false end end $ rol '$_.sub!(/len/, "xyz")' myfile # myfile の各行の最初の"len"を"xyz"に変換して標準出力に表示 def strxyz-comp(str, len) if str.xyzgth == len return true else return false end end