From: Tanaka Akira Date: 2002-11-18T17:56:19+09:00 Subject: [ruby-list:36517] Re: merge large files In article <5.1.1.8.2.20021118171227.0335c008@blade.nagaokaut.ac.jp>, Shin-ichiro HARA writes: > $B$H$3$m$G!"$d$C$Q$j$A$g$C$H0z$C$+$+$k$N$O!"FI$_=*$($?%U%!%$%k%O%s%I%k$K(B > $BBP$9$k(B gets $B$H!"%U%!%$%k%O%s%I%k$N(B close $B$G$9!#$=$N$"$?$j!"(BRuby $B$,$&$^(B > $B$/$d$C$F$/$l$k$N$G!"$3$N%1!<%9$G$O9M$($J$/$F$b$$$$$s$G$9$,!";W9M $B$7$F!"$b$&$A$g$C$H0lHLE*$J%9%H%j!<%`$C$]$$%*%V%8%'%/%H$KBP$7$F$bM-8z$J(B > $B%"%k%4%j%:%`$O$I$&$J$k$+$C$F;v$b9M$($F8+$?$$!"!"!"!#(B $B$^$8$a$KFI$s$G$J$+$C$?$s$G$9$,!"(Bmap_with_index $B$r;H$C$F!"(B format = (["%-35s"] * ARGV.size).join(" | ") handles = ARGV.map{|f| open(f)} while (lines = handles.map_with_index {|h, i| h and (h.gets or handles[i] = h.close)}).find{|x| x} print format % lines.collect{|l| l.to_s.chomp}, "\n" end $B$H$+(B? $B$3$N>l9g!"$J$s$G(B map $B$8$c$J$/$F(B map_with_index $B$,I,MW$+$H$$$&$H!"MWAG(B $B$rJQ99$9$kI,MW$,$"$k$+$i$G!"$3$l$O(B perl $B$N(B foreach $B$N(B VAR $B$,BeF~2DG=$G(B $B$"$k$H$+!"(BIteration Abstraction in Sather $B$G(B CLU $B$NLdBj$H$7$F;XE&$5$l(B $B$F$$$k(B 3$B$D$N$&$A$N(B No way to modify elements $B$K$"$?$k$H$+!"$1$C$3$&0l(B $BHLE*$JOC$G(B... $B$J$I$HCN$C$?$P$+$j$Ni>C_$r?b$l$F$_$?$j$7$F!#(B -- [$BEDCf(B $BE/(B][$B$?$J$+(B $B$"$-$i(B][Tanaka Akira] $B!V$U$($m(B! $B$o$+$a$A$c$s:n@o$G$9$(C"=$B!W(B(Little Worker, $B7KM7@84](B)