ruby - ワンライナーの書き方入門 ane,apeだけで大体いける
なんか流行ってるみたいなのでいつも使うものを数点あげてみます。
rubyでワンライナーするときには-aneと-apeだけおぼえれば大体いける。
日本生まれだけあって日本語はほとんど気にしなくてOK
データは以下
$ cat > d.txt 1 ひとつめ foo 2 二つ bar 3 3っつめ buzz
真ん中のカラムのみを抜く
$ cat d.txt | ruby -ane 'puts $F[1]' ひとつめ 二つ 3っつめ
真ん中のカラムを一つのレコードへ
$ cat d.txt | ruby -ane 'print $F[1]," "';echo ひとつめ 二つ 3っつめ $ cat d.txt | ruby -ane 'print $F[1],","';echo ひとつめ,二つ,3っつめ,
最終カラムのみ抜き出す
$ cat d.txt | ruby -ane 'puts $F[2]' foo bar buzz
最終カラムの文字列長のみを出力
$ cat d.txt | ruby -ane 'puts $F[2].size' 3 3 4
最終カラムを文字列長へ置換
$ cat d.txt | ruby -ane 'puts [$F[0],$F[1],$F[2].size].join(" ")' 1 ひとつめ 3 2 二つ 3 3 3っつめ 4
最終カラムを逆転させる
$ cat d.txt | ruby -ane 'puts [$F[0],$F[1],$F[2].reverse].join(" ")' 1 ひとつめ oof 2 二つ rab 3 3っつめ zzub
先頭行と最終行で余計なことをする
$ cat d.txt | ruby -ane 'BEGIN{puts "*さいしょ"};END{puts "*終わり"}; puts $F[1]' *さいしょ ひとつめ 二つ 3っつめ *終わり