我想从Excel转移到Awk。我需要数组的基本数学运算,例如加法和除法。AWK如何做数组运算?
例如,数组A和B分别是[1,3,2]和[2,1,2]。如何从A和B之间的乘法中获得一个数组[2,3,4]? A和B之间的加法和分割是什么?
我想从Excel转移到Awk。我需要数组的基本数学运算,例如加法和除法。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. GNU Awk手册在awk here中有关于数组的一个很好的部分。
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
会让我相信。
不要为此学习awk,而是学习Perl。但是不要学习Perl,而是学习Python。当你需要处理超过200行的程序时,你的大脑会感谢你。 (说长时间的Perl程序员。) – 2009-02-07 03:04:15