テクノロイド

コンピュータやゲーム他、色々日々思ったことをつづっていきます。

ワンライナー

2008-08-24 03:00:37 | Ruby, Rails,プログラミング
コピペでコマンドラインに入力した値を変換して実行したい。
alias で出来ないかなと思ったが、引数を使いたい場合、bashだと function を使うらしい。
で、置換するのに ruby を使いたいのでワンライナーでやろうかなと。
試行錯誤した結果のメモ
function dorep() { ruby -e "syscmd='echo ' + '$1'.sub(/before/,'after'); if $&.nil? then puts '[ERROR]:$1' else system syscmd end"; }
となった。$1は function の引数
文字列の引用符が何重にもなって思うように動かずに苦労した。
置換が失敗した場合はエラー表示したいと思ってどうすれば?と思ったが、$&で判断出来た。今まで知らんでよく来れたもんだ。