免责声明:我是新手。
我一直在寻找我的问题的答案,但没有成功。如果有我没有找到的关于此的帖子,请推荐给我!
我一直在尝试使用 awk 为相当大的数据文件的每一行中的每个字段计算累积总和。任何帮助将非常感激。
我的文件包含几十万行,其中行的长度(字段数)各不相同,最长可达 100 个字段(即最多 100 列)。输入看起来像这样(但实际数字要大得多)并且以制表符分隔:
12 9 2 1 7 1 4 5 1 7
19 1 1 1 1 1 1 2 5 1
45 1 5 1 8 1 2 1 4 1
我希望输出采用“新字段 2 = 字段 1 + 字段 2”和“新字段 3 = 字段 1 + 字段 2 + 字段 3”等格式,即输出应如下所示(打印在新文件中) ):
12 21 23 24 31 32 36 41 42 49
19 20 21 22 23 24 25 27 32 33
45 46 51 52 60 61 63 64 68 69
我一直在尝试使用 awk,但终其一生都无法让它适用于每个领域(我不想键入命令一百次)。
显然我对这一切都很陌生,任何有效的解决方案都会让我高兴。不必是 awk。在此先感谢您的帮助!
以下awk
可能对您有所帮助。
awk '{for(i=2;i<=NF;i++){$i=$i+$(i-1)}} 1' Input_file
解释:
awk '{
for(i=2;i<=NF;i++){ ##Starting a for loop from value of 2 to till value of NF.
$i=$i+$(i-1)}} ##Adding value of current field with previous field here and assigning to itself.
1 ##Mentioning 1 to print the current line with edited field values.
' Input_file ##Mentioning Input_file name here.
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句