【发布时间】:2016-10-08 01:14:58
【问题描述】:
我有数百个文件要处理。每个文件包含数百万行。
示例文件内容:
---------------
12
3
5
---------------
8
0
5
---------------
1
5
56
4
---------------
我需要得到如下所示的输出(由前一个文件中的破折号分隔的数字总和):
20
13
66
我将while、if、else 与awk 结合使用,但if/else 大大减慢了处理速度。
任何想法如何使用纯awk 来加速计算?
【问题讨论】:
-
你应该展示你的代码——
while和if是在shell脚本中还是在awk脚本中?无论如何,awk脚本中不需要循环或if条件。如果没有最后一行破折号,文件会结束吗? -
wrt
I used while, if, else- 阅读 why-is-using-a-shell-loop-to-process-text-considered-bad-practice 和一个 shell 教程。还可以获取 Arnold Robbins 的《Effective Awk Programming, 4th Edition》一书。 -
样本文件内容是代表单个还是多个文件?
标签: file if-statement awk