From: gotoken@... (GOTO Kentaro) Date: 2000-12-26T14:18:49+09:00 Subject: [ruby-list:26857] Re: 鉄人 ごとけんです In message "[ruby-list:26854] 鉄人" on 00/12/26, WATANABE Hirofumi writes: >わたなべです. >:ところで、鉄人の作品ってどんなんだったんですか? ぼくは裏でXP >問題を思い出してみます. わーい、どうもありがとうございます。おかげで楽しめました。 >3) ruby sample/sieve.rb 1000 とまつもとさんが答えてしまったので, > これはわたしが作りましたとスクリプトの内容解説. ははは >プロジェクタの切り替えとかがちょっと. 持って行った VAIO が >VGA に切り替えると LCD になにも映らないやつだったりで. >#そういえば切り替え方法を原先生に教えてもらったんだ. ありがとー. # そういえば僕に切り替え方法を教えてくれた前田さん、ありがとー。 >このセッションは「ワンライナーのすすめ + Perl/Rubyの鉄人」で, >鉄人のコーナーは特にワンライナーにしろという制限もなかったん >ですが, 結局ワンライナーの鉄人になってしまいました. >みんな Perl だ Ruby だとはこだわらず, sh も sed も find も出 >てきて面白かったです. あう、ワンライナの鉄人かと思ってました ^^;; -- gotoken >1) あるディレクトリ内に *.htm と *.html が混在してるとき, > ファイル名を *.html に統一せよ(中身はいじらない). ruby -e'Dir["*.htm"].each{|f| test(?e,f+"l") ? p f+" exists" : File.rename(f,f+"l")}' わざわざRuby使うのは一行道に反します :-) > for i in *.htm;do mv $i ${i}l;done ということかな. > command.com/cmd.exe だと ren *.htm *.html DOSのワイルドカードはときどき欲しいです。 >2) 10 進数を 9 進数へ変換. > 100 までとかいう制限は特になかったと思う. ruby -e'100.times{|n| d=[n]; d[0..0]=d[0].divmod(9) until d[0]<9; p d.join}' でも、やっぱ bc でしょ :-) >3) 1000 までの素数を表示せよ. Rubyだとほんとにワンライナで書ける例かも。 ruby -e'for i in 2..1000 do (2..i-1).find{|j| i%j == 0} or p i end' >4) Conference の web page から(URL はおぼえてない), タイトル > と日付を抜き出せ. wget とか lftpget を使ってもいいが, で > きれば自力で http access するのがいい. GETしてscanの直前までならシェル変数使ってこうかな? ruby -Ke -r kconv -r socket -e ' Kconv.toeuc( (TCPSocket.open("'$h'",80)<<"GET '$p' HTTP/1.0\nHost: '$h'\n\n").read ).split("\r\n\r\n")[1..-1].join(" "). display ' # わんらいなちゃうやん