Ruby:ワンライナー

作成日 : 2010-05-16
最終更新日 :

説明

ruby のオプションの -pe は、-p, -e のそれぞれをこの順で指定したものの略記である。 詳しくはRuby コマンドラインオプションを参照。

短い実例

テキストファイルの連続スペースをタブに置き換える

$ ruby -i.bak -pe 'gsub(/ +/, "¥t")' *.txt

テキストファイルの改行をDOS形式からUNIX形式に置き換える

$ ruby -i.bak -pe 'gsub(/\r/, "")' *.txt

テキストファイルのアルファベットをすべて小文字に置き換える

$ ruby -i.bak -pe '$_.downcase!' *.txt

Shift JIS で書かれた html ファイルを utf-8 に置き換える

$ ruby -i.bak -pe '$_.encode!("UTF-8")' *.htm

ちょっと長い実例

html ファイルから title タグの要素を表示する

$ ruby -e 'while line=ARGF.gets(rs=nil) do puts line.gsub(/.*<title>(.*)<\/title>.*/m,"\\1").strip;end' *.htm
$ ruby -0777 -e 'while line=ARGF.gets do puts line.gsub(/.*<title>(.*)<\/title>.*/m,"\\1").strip;end' *.htm
$ ruby -0777 -ne 'puts gsub(/.*<title.*?>(.*?)<\/title>.*/m,"\\1").strip.gsub(/\s+/," ")' *.htm

古い kif 形式から新しい kif 形式に変換する

$ ruby -pe '$_[6]=$_[6].tr("123456789","一二三四五六七八九")'

参考:
https://www.greptips.com/posts/1140/
https://docs.ruby-lang.org/ja/latest/doc/spec=2frubycmd.html

まりんきょ学問所Rubyの浮き輪 > ワンライナー


MARUYAMA Satosi