【发布时间】:2020-10-28 14:56:56
【问题描述】:
我有一个大文件和一些要在列上执行的重复性任务:用简单的语言来说,大多数任务都愿意
do from i=0 to 9
(col$30+i) = (col$10+i) + (col&20+i)
我希望在每个循环中:
我=0 col$30 = col$10 + col$20
我=1 col$31=col$11+col$21
... 我=9 col$39=col$19+col$29
我尝试探索诸如“列循环”、“列增量”之类的标签,但没有什么能轻易找到。我可以为每个 i 编写它,但想知道是否有一个魔术技巧可以更有效且可转置到其他类似情况。 谢谢!
虚拟数据
col10 col11 col20 col21 col30 col31
… 2 42 … 12 1 … 14 43
… 2 83 … 22 1 … 24 84
… 2 45 … 33 4 … 35 49
… 3 61 … 36 3 … 39 64
所以在第 1 次迭代中,col30 填充了正确的总和,在第 2 次迭代中,col2 填充了正确的总和......等等......
【问题讨论】:
-
您能否在您的问题中发布输入示例和预期输出示例,以便更好地理解问题。
-
@RavinderSingh 我添加了一张虚拟数据的图片-我希望没问题
-
请您仅以文本形式发布数据,以便我们可以复制并复制/粘贴以进行测试等。
-
您的伪代码直接转换为
awk '{ for(i=0; i<=9; ++i) $(30+i) = $(10+i) + $(20+i) }1' -
`{ sum = 0; for (i = 1; i