Bash
基於欄位的 awk sum csv 列
我有 N 個文件,如下所示:
文件1.txt
Header1,Header2,Header3,Header4,Header5 A,B,RANDOM,1,2 C,D,RANDOM,3,4
文件N.txt
Header1,Header2,Header3,Header4,Header5 A,B,RANDOM,1,2 C,D,RANDOM,3,4
它們都有相同的標題。我想根據 Header1 和 Header2 總結所有 Header4 和 Header5。因此,所有帶有
A,B
欄位的項目都應將 Header4、Header5 相加。列印類似的東西
A,B,2,4 C,D,6,8
假設輸出的順序不是必需的……
awk ' BEGIN { FS=OFS=SUBSEP="," } { s4[$1,$2]+=$4 ; s5[$1,$2]+=$5 } END { for (k in s4) print k,s4[k],s5[k] } ' file1 ... fileN
(為了更好的易讀性進行了編輯和重組。)