[ruby-list:45574] Re: 簡潔なHASH値のインクリメント

From: Urabe Shyouhei <shyouhei@...>
Date: 2008-10-21 09:28:39 UTC
List: ruby-list #45574
直訳

zsh % cd /dev/shm
zsh % cat > A
yahoo
goo
google
yahoo
msn
msn
^D
zsh % ruby -nle 'BEGIN{$class=Hash.new(0)}; $class[$_]+=1; END{ for k,v in $class do print v, k end }' A
2yahoo
1google
1goo
2msn

もっとRubyっぽい回答は他の人が投稿してくれるでしょう。


IIDAYUICHI さんは書きました:
> 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 で似たような処理を一撃で出来ないかと考えています。
> ご助言いただければ幸いです。
>
>
> ------
> <y_iida@gomaneko.com>
>
>
>
>   


In This Thread