最初の列のエントリがUNIXで同じ場合は、2番目の列の値を追加します。

最初の列のエントリがUNIXで同じ場合は、2番目の列の値を追加します。

UNIXでは、次のデータを含むファイルを集計しようとしています。キーが同じ場合は、金額を追加する必要があります。

Key,amount,date,Time
abc-xyz-12234,45,15-08-91,23:00
pqr-vgh-5241,15,15-08-91,21:00
abc-xyz-12234,35,15-08-91,23:00
pqr-vgh-5241,24,15-08-91,21:00
abc-xyz-12234,655,15-08-91,23:00
lkj-erf-8542,281,15-08-91,10:00
pqr-vgh-5241,40,15-08-91,21:00

出力は次のようにする必要があります

abc-xyz-12234,735,15-08-91,23:00
pqr-vgh-5241,79,15-08-91,21:00
lkj-erf-8542,281,15-08-91,10:00

次のコマンドを試しましたが、uniqのみが提供されます。

cat file | grep "abc-xyz-12234" | uniq

ベストアンサー1

別の考えられる解決策はawk次のとおりです。

awk 'BEGIN { FS = OFS = "," }
     NR != 1 { y[$1] += $2; $2 = y[$1]; x[$1] = $0; }
     END { for (i in x) { print x[i]; } }' file

欠点は、注文を受け取らないことです。したがって、結果は次のようになります。

pqr-vgh-5241,79,15-08-91,21:00
abc-xyz-12234,735,15-08-91,23:00
lkj-erf-8542,281,15-08-91,10:00

おすすめ記事