Arrays AWK如何处理数组算法?

Arrays AWK如何处理数组算法?,arrays,awk,math,Arrays,Awk,Math,我想从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

我想从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]

并且只有2个元素存储在该数组中(2到99之间的元素不存在),由通过转换数字100和1创建的字符串索引。GNUAWK手册中有一个关于Awk中的阵列的很好的章节

我认为awk不适合这种数字工作。它更多地用于文本处理。awk中的数组是关联的,并且占用空间很少(索引之间可能有“洞”)。您可以使用字符串对其进行索引:

for(int j=0; j<length(A) && j<length(B); j++)
    C[j] = A[j] * B[j]
并且只有2个元素存储在该数组中(2到99之间的元素不存在),由通过转换数字100和1创建的字符串索引。GNUAWK手册中有一个关于Awk中的阵列的很好的章节

awk
中,“数组”是关联的。也就是说,它们不是由连续的数字字符串索引的散列,而是由任意输入值索引的散列。所以你可以做像这样的事情

for (i=0; i<3; i++){
   c[i] = a[i] * b[i];
};
但是数组处理实际上并不是awk的强项,我建议大家在全面学习这门课程之前,先仔细研究一下所涉及的内容

您最好使用
python
或另一种相当现代的快速开发语言

顺便说一句——上周我在
python
中编写了我的第一段非琐碎的代码,我完全上瘾了。在偶尔接触了
tcl
perl
之后,我对这类工具的价值真的是一知半解。我认为
python
会让我成为一个信徒。

awk
中,“数组”是关联的。也就是说,它们不是由连续的数字字符串索引的散列,而是由任意输入值索引的散列。所以你可以做像这样的事情

for (i=0; i<3; i++){
   c[i] = a[i] * b[i];
};
但是数组处理实际上并不是awk的强项,我建议大家在全面学习这门课程之前,先仔细研究一下所涉及的内容

您最好使用
python
或另一种相当现代的快速开发语言


顺便说一句——上周我在
python
中编写了我的第一段非琐碎的代码,我完全上瘾了。在偶尔接触了
tcl
perl
之后,我对这类工具的价值真的是一知半解。我认为
python
会让我成为一个信徒。

不要为此而学习awk,而是学习Perl。但不要学习Perl,而是学习Python。当你需要处理一个超过200行的程序时,你的大脑会感谢你。(作为一名长期的Perl程序员)不要为此学习awk,而是学习Perl。但不要学习Perl,而是学习Python。当你需要处理一个超过200行的程序时,你的大脑会感谢你。(作为一名长期的Perl程序员)