テキストファイル items.txt があるとします
Another Purple Item:1:3:01APR13
Another Green Item:1:8:02APR13
Another Yellow Item:1:3:01APR13
Another Orange Item:5:3:04APR13
2 列目が価格で、3 列目が数量です。各一意の日付の合計が になるように、これを bash でループするにはどうすればよいprice * quantity
ですか
この awk ワンライナーを試してください:
awk -F: '{v[$NF]+=$2*$3}END{for(x in v)print x, v[x]}' file
結果:
01APR13 6
04APR13 15
02APR13 8
ソートの編集
コメントしたように、出力を日付でソートするには 2 つの方法があります。単純な方を使用します: ^_^:
kent$ awk -F: '{ v[$NF]+=$2*$3}END{for(x in v){"date -d\""x"\" +%F"|getline d;print d,x,v[x]}}' file|sort|awk '$0=$2" "$3'
01APR13 6
02APR13 8
04APR13 15
bash の連想配列を見てください。
日付から値へのマップを作成し、行を調べて計算price*quantity
し、現在マップにある値に追加するか、存在しない場合は挿入することができます。