http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=String#g...
while gets()
puts $_.gsub(/^\s+/,"").gsub(",","\n")
end
でいけるかな?この場合、行末尾の,に加えてもともとの改行も改行になってしまうので上記のままのテキストだと
abcdefg@abcde.com
faafa
(空行)
abccc
afaafa
fafaa
aafa
(空行)
defere
sthere
slip
abut
(空行)
bitafa
fafaal
みたいになってしまいますが、それが嫌な場合はちょっと追加して
while gets()
puts $_.gsub(/^\s+/,"").gsub(",","\n").gsub(/^\n$/,"")
end
でいいと思います。
使いかたはこのrubyスクリプトをhoge.rbとすると
コマンドプロンプトから
ruby hoge.rb nyuuryoku.txt > shuturyoku.txt
で結果がshuturyoku.txtに入ります。
もっとスマートな回答もありそうですけど…。
(なお、はてなの回答の制約で見づらくなるので上記スクリプトには全角の空白が入ってます。コピペしたらそこは半角の空白かタブに変えてください)
文字列の先頭の空白を取り除くにはString#lstripというメソッドが使えます。
http://www.ruby-lang.org/ja/man/?cmd=view;name=String#lstrip
ということで、
ARGF.each do |line| print line.lstrip.gsub(/,/, "\n") end
でいかがでしょう。
使い方はKumappusさんのと同じく、上のスクリプトをconvert.rbというファイルに保存したとすると
ruby convert.rb test.txt > test2.txt
でtest.txtを変換したものがtest2.txtに書き込まれます。