OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

こづかい帳のような集計のアルゴリズムって?

  • すぐに回答を!
  • 質問No.191078
  • 閲覧数137
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 80% (4/5)

こんばんは。gawkとbashを用いてlogの集計を行っています。
その際にお小遣い帳のような機能を実現することがなかなか出来ずに
困っています。perlだったら、ネットでもかなり情報が豊富だし、
書籍も多いと思うけど、awkってUNIXの基本的な知識ってことでUNIX管理系の
書籍にちょこっと載ってるってケースが多いですよね。それか
ものすごく分厚い本でなかなかなじめないようなのとか。。。助けて下さい。
例えば

1/1 gohan 1000
1/1 kaimono 5000
1/1 kaimono 2000
1/2 karaoke 3500
1/2 gohan 1200
1/2 gohan 1500

といったデータがあったとして、これを

1/1 gohan 1000
1/1 kaimono 7000
1/2 karaoke 3500
1/2 gohan 2700

のように集計したいのです。月日の部分を基点にして、1/1の部分についてだけ
for(i in count)の形式を用いて集計する。その後1/2の部分について集計する。
というのをずーっと続けていくには、どのようなスクリプトを書けば
いいんですか?教えて下さい。どうかお願いします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル13

ベストアンサー率 34% (574/1662)

{
sum[$1,$2] += $3
}

END {
for ( item in sum ) {
split(item, t, SUBSEP );
printf("%s %s %d\n",t[1],t[2],sum[item]);
}
}

こんなのでなんとかなります。
後はパイプでソートするなり、読み込みで空白行を飛ばすなり、・・・
お礼コメント
heikekaori

お礼率 80% (4/5)

わぉ。ご回答ありがとうございます。これだけ情報を頂ければ
あとは自分で頑張ってみますね。コードもURLも参考にします。
嬉しいですぅ。
投稿日時 - 2001-12-27 13:08:44
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル14

ベストアンサー率 50% (1122/2211)

集計のやり方については No.1 の回答がズバリなので、私は、情報の紹介を。 確かに、awk は perl に比べて情報が少ないですよね。 私は、awk のマニュアルを主体に憶えました。 参考URLには、gawk のマニュアルと、awk を使った数値計算の情報を載せている ページの awk のガイドの URL を載せておきます。 後者のページは、以下の URL からリンクが貼られてい ...続きを読む
集計のやり方については No.1 の回答がズバリなので、私は、情報の紹介を。

確かに、awk は perl に比べて情報が少ないですよね。
私は、awk のマニュアルを主体に憶えました。

参考URLには、gawk のマニュアルと、awk を使った数値計算の情報を載せている
ページの awk のガイドの URL を載せておきます。

後者のページは、以下の URL からリンクが貼られています。他の人が書いた
スクリプトが、意外と良い教科書になったりします。

http://aoki2.si.gunma-u.ac.jp/Hanasi/Algo/algorythm.html
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ