原です。

>わたなべです。

>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] をわざと使ってみたり

高く評価できます。:-)