我有一个包含几千个数字的文件,每个数字都在它自己的行上:
34
42
11
6
2
99
...
我正在寻找一个脚本来打印文件中所有数字的总和。我有一个解决方案,但它不是很有效。 (运行需要几分钟。)我正在寻找更有效的解决方案。有什么建议么?
原文由 Mark Roberts 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个包含几千个数字的文件,每个数字都在它自己的行上:
34
42
11
6
2
99
...
我正在寻找一个脚本来打印文件中所有数字的总和。我有一个解决方案,但它不是很有效。 (运行需要几分钟。)我正在寻找更有效的解决方案。有什么建议么?
原文由 Mark Roberts 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用 awk:
awk '{ sum += $1 } END { print sum }' file
原文由 Ayman Hourieh 发布,翻译遵循 CC BY-SA 2.5 许可协议
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答796 阅读✓ 已解决
2 回答3.2k 阅读
对于 Perl 单线,它与 Ayman Hourieh 的回答 中的
awk
解决方案基本相同:如果您对 Perl 单行代码的作用感到好奇,可以对它们进行解析:
结果是该程序的一个更详细的版本,其形式是任何人都不会自己编写的:
只是为了咯咯笑,我用一个包含 1,000,000 个数字(在 0 - 9,999 范围内)的文件进行了尝试。在我的 Mac Pro 上,它几乎可以立即返回。这太糟糕了,因为我希望使用
mmap
会非常快,但它只是在同一时间: