我想从 Excel 转移到 Awk。我需要数组的基本数学运算,例如加法和除法。
例如,数组 A 和 B 分别是 [1, 3, 2] 和 [2, 1, 2]。如何从 A 和 B 之间的乘法中得到数组 [2, 3, 4]?A和B之间的加法和除法呢?
我认为 awk 不适用于这种数字工作。它更多地用于文本处理。awk 中的数组是关联的并且被稀疏占用(在其索引之间可能有“洞”)。您使用字符串来索引它们:
for(int j=0; j<length(A) && j<length(B); j++)
C[j] = A[j] * B[j]
这就像一个哈希映射。所以,在 awk 你可以做
A[100] = 10;
A[1] = 2;
并且只有 2 个元素存储在该数组中(不存在从 2 到 99的元素),由通过转换数字 100 和 1 创建的字符串索引。
在awk
“数组”中是关联的。也就是说,它们不是由连续的数字串而是由任意输入值索引的哈希值。所以你可以做类似的事情
for (i=0; i<3; i++){
c[i] = a[i] * b[i];
};
如果您知道数字索引元素存在,或者您可以执行以下操作:
d["sam"] = a[3] + b["dog"];
但是阵列处理确实不是awk
我们的强项,我建议您在批发本课程之前仔细查看所涉及的内容。
python
使用或另一种相当现代的快速开发语言可能会更好。
顺便说一句——上周我写了我的第一个重要的代码python
,我完全被迷住了。在偶尔接触tcl
和之后perl
,我真的对这些工具的价值一无所知。我想python
会让我成为一个信徒。