[#42243] コミュニティと宗教の分離について — Beyond <beyond@...>

14 messages 2006/05/21

[#42267] メニューのループについて — リックス <rubyer4649@...>

りっくすです

21 messages 2006/05/27

[#42301] Re: メニューのループについて — "conundrum /" <conundrum@...>

conundrumです。

11 messages 2006/05/28

[ruby-list:42311] Re: Windows上でのruby toolの作り方

From: WATANABE Hirofumi <eban@...>
Date: 2006-05-29 03:49:27 UTC
List: ruby-list #42311
わたなべです。

しん <dezawa@aliadne.net> writes:

> DOS窓で
> ruby -e 'while gets; f=chop.split(","); if f[1]=="\"\"" ;printf"%s,%s\n",f[7],f[12];end;end' inputfile
> 
> としても、エラーもでないけど何もでない。

ruby -e 'p "\"\""'を実行すると"\"\""ではなく""と表示されるので、
なんとなくrb_w32_cmdvector()のバグっぽい気がしますが、
とりあえずそれはうささんに任せるとして、
one liner向けの情報をいくつか。

まずwhileでgetsしてchop.split(",")するという形は-F, -lanと書けます。
-lでchopされて-aでsplitされて$Fという配列に格納されます。
さらに%を使わなくてもf[1] == ""はf[1].empty?と書けるので問題
の点は一応回避できます。
あと、ifは修飾子として使えばendを省略できるので短くなります。

ruby -F, -lane 'printf"%s,%s\n",$F[7],$F[12] if $F[1].empty?' inputfile

-- 
わたなべひろふみ

In This Thread