所以我的输入文件是:
1;a;b;2;c;d;3;e;f;4;g;h;5
1;a;b;2;c;d;9;e;f;101;g;h;9
3;a;b;1;c;d;3;e;f;10;g;h;5
我想将数字相加,然后将其写入文件(因此我需要每个4th
字段)
我在网上尝试过很多例子,但我找不到答案
我的输出文件应该是:
159
谢谢!
更新
a;b;**2**;c;d;g
3;e;**3**;s;g;k
h;5;**2**;d;d;l
问题是一样的。
我想总结第3个数字(但在第3个数字的行中)。
所以2+3+2
。
输出:7
答案 0 :(得分:3)
显然你想要每隔3个字段打印一次,而不是每隔4个字段打印一次。以下代码循环遍历所有字段,将每个字段汇总到3k+1
位置。
$ awk -F";" '{for (i=1; i<=NF; i+=3) sum+=$i} END{print sum}' file
159
在END {}
块中处理整个文件后打印该值。