Hatena::ブログ(Diary)

サイログ。MiyakoとかRubyとかなんとか+Miyako ACCESS MAP このページをアンテナに追加 RSSフィード

2008年03月19日 水曜日 第24回Ruby/Rails勉強会@関西の課題こたえ

第24回Ruby/Rails勉強会@関西 初級者レッスン課題こたえ

先週の土曜日に行われたRuby/Rails勉強会@関西で出てきた課題をこたえます。

最後の数問は、「どれを参考にしたら・・・」状態だったのでやめました(^^;

というわけで、途中までのこたえ。


# 英文解析

list = ARGF.readlines

# 文字数カウント

puts list.map{|l| l.chomp.strip }.join('').split(//).length

# 単語数カウント

puts list.inject(0){|r, l| r = r + l.chomp.strip.split(/[\s\t]+/).length }

# 行数

puts list.length


# 文字列出現頻度

list.map{|l| l.chomp.strip }.join('').split(//).inject(Hash.new(0)){|r,c| r[c] += 1; next r }.sort.each{|k,v| puts sprintf("[#{k}] : %5d", v)}
 
# 単語出現頻度

list.map{|l| l.chomp.strip.split(/[\s\t]+/) }.flatten.inject(Hash.new(0)){|r,c| r[c] += 1; next r }.sort.each{|k,v| puts sprintf("[#{k}] : %5d", v)}

# Apacheアクセスログ解析

list = ARGF.readlines

# index.phpへのアクセス回数

puts list.select{|l| /\"GET \/index\.php/.match(l) }.length

# 最初のMacユーザのアクセス時

puts list.find{|l| /Macintosh;/.match(l) }.split(/\s/)[3].sub(/^\[/, '')

某さん、あとは頼む(笑)

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/cyross/20080319/1205934726