我有一個文件,其中有n列(不知道有多少列預先)。我需要總結具有相同column1值的列並打印它們。除第一列外,所有列都是數字。例如groupby /總結所有列在第一列相同awk
FILE1.TXT
col1 col2 col3 ... colN
val1 3000 1000 ... 5000
val2 3000 1000 ... 5000
val1 1000 2000 ... 3000
預期輸出:
col1 col2 col3 ... colN
val1 4000 3000 ... 8000
val2 3000 1000 ... 5000
我曾嘗試:
awk '{sums[$1] += $2} END { for (i in sums) printf("%s %s\n", i, sums[i])}' file1.txt | sort
這僅打印頭兩列。我需要添加並打印所有列。
這在我看來,是完全正確的想法,但你將需要遍歷每一個領域,並做這筆錢爲ea工作一個。你可以使用'sum [$ 1,i]'(假設你的循環變量是i)根據'$ 1'的值和字段號得到一個數組索引。然後你的END循環將不得不從1行走到X(在某點保存NF,並假設你所有的行都是相同的長度)並打印順序字段。 –