小编Gan*_*esh的帖子

需要根据管道分隔符对最后一列求和

我有以下输入,其中包含大量行

11|ABCD|19900101123123445455|555|AAA|50505050|0000009030
11|ABCD|19900101123123445455|555|AAA|50505050|0000000199
13|ABCD|201803010YYY66666666|600|ETC|20180300|0000084099
11|ABCD|19900101123123445455|555|AAA|50505050|0008995001
Run Code Online (Sandbox Code Playgroud)

我需要低于输出

11|ABCD|19900101123123445455|555|AAA|50505050|9004230
13|ABCD|201803010YYY66666666|600|ETC|20180300|84099
Run Code Online (Sandbox Code Playgroud)

我一直在尝试使用以下 awk,但对数组的了解太有限。

cat test|awk -F"|" '{ a[$1]++;b[$2]++;c[$3]++;d[$4]++;e[$5]++;f[$6]+=$6 }; END { for (i in a); print i, f[i]}'
Run Code Online (Sandbox Code Playgroud)

我需要对第 6 列的最后一列求和并打印所有前 5 列,这些列由管道分隔,最后 6 列作为第 6 列的总和。

awk shell-script

3
推荐指数
2
解决办法
1271
查看次数

标签 统计

awk ×1

shell-script ×1