From: "佐藤 直之" Date: 2008-10-21T19:59:15+09:00 Subject: [ruby-list:45577] Re: 簡潔なHASH値のインクリメント 佐藤です。 rubyでもawkでもないですが、ただ単にテキストファイルに対 しての行処理を目的とするならば uniq -c ./文字列ファイルA 1 yahoo 1 goo 1 google 1 yahoo 2 msn は、どうでしょうか。 ------------------------------- 佐藤直之 On 平成 20/10/21, at 19:13, 石塚圭樹 wrote: > けいじゅ@いしつかです. > > こんな感じでいかがでしょう? > > % ruby -e "puts ARGF.group_by{|w| w}.map{|key, ary| [key.chomp, > ary.size].join(' ')}" A > > yahoo 2 > msn 2 > google 1 > goo 1 > > 厳密には以下でしょうかね. > > % ruby -e "puts ARGF.map{|w| w.chomp}.group_by{|w| w}.map{|key, ary| > [key, ary.size].join(' ')}" sam > > > > In [ruby-list :45572 ] the message: "[ruby-list:45572] 簡潔な > HASH値の > インクリメント ", on Oct/21 18:09(JST) IIDAYUICHI writes: > >> IIDA_Y と申します。 >> こんにちわ。 >> >> 以下のような文字列ファイルAがあるとします。 >> >> A: >> ------- >> yahoo >> goo >> google >> yahoo >> msn >> msn >> >> これをAWKで以下のように処理すると >> $ awk --version >> GNU Awk 3.1.3 >> .. >> $ awk '{ class[$1]++ } END { for (i in class){print i, class[i]}}' A >> >> google 1 >> msn 2 >> goo 1 >> yahoo 2 >> >> のようになります。 >> >> これを Ruby で似たような処理を一撃で出来ないかと考え >> ています。 >> ご助言いただければ幸いです。 >> >> >> ------ >> >> >> > > __ > ---------------------------------------------------->> 石 > 塚 圭樹 <<--- > ---------------------------------->> e-mail: keiju@ishitsuka.com <<--- >