我有一个看起来像这样的文本文件:
0,5
3,100
30,90
对于每一行,我需要从第二列的值中减去第一列的值,然后加1。然后将每一行相加。对于上面的示例:
5-0+1 = 6
100-3+1 = 98
90-30+1 = 61
然后,我将这些数字相加:6+98+61 = 165
。
我想要得到的最终结果是数字165
。只要遵循上述相同的逻辑,我就不会在乎是否以其他方式完成了。我只是想找出最好的方法。
该文本文件包含大约1500万行文本。第二个数字始终大于或等于第一个数字,因此您不必担心负数。
我会以最好的语言来做到这一点,只要它不需要安装额外的(非默认)模块即可。任何示例也将被赞赏。
我主要关心的是它正在处理1500万行,我需要使其尽可能快,而且我对编码语言还不够熟悉,以至于哪种语言效率最高。
这是我的首要任务,但我认为这awk
是一个潜在的解决方案(假设数字在numbers.txt中):
awk -F, '{tot += $2 - $1 + 1} END{print tot}' < numbers.txt
该命令-F,
告诉awk
逗号是一个分隔符,tot
默认为0,默认END
是awk关键字,表示要执行在数据上击中EOF之后的代码块。
Awk并不是军火库中最快的武器,但我会尝试一下,因为它只能放在一条线上!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句