わたなべです。

Yuya Kato <yuya-ml / 4th.to> writes:

> > ---------------------------------------------------------------------
> > f1 = open(ARGV.shift)
> > f2 = open(ARGV.shift)
> > 
> > until (line = [f1.gets, f2.gets]).compact.empty?
> >   printf("%-35s | %-35s\n", (line[0] || "").chomp, (line[1] || "").chomp)
>     printf("%-35s | %-35s\n", line[0].to_s.chomp, line[1].to_s.chomp)
> > end
> > ---------------------------------------------------------------------

2つだけってのも何だし、それ以上のときはどうすればいいのかちょっ
と考えてみました。

format = (["%-35s"] * ARGV.size).join(" | ")

handles = ARGV.map{|f| open(f)}

while lines = handles.collect{|h| h.gets.to_s.chomp}
  break if lines.uniq == [""]
  print format % lines, "\n"
end

-- 
わたなべひろふみ
嫌いだという str % [a,b] をわざと使ってみたり