在使用awk数组变量元素之前先打印它们

时间:2018-08-23 07:28:39

标签: arrays awk

我正在使用GNU Awk 3.1.7进行Linux Red Hat 6.6配置

在awk语句中,我想拆分一个shell字符串变量,并将所有字符串元素分配为键,而不是值,所以我在awk语句的BEGIN部分中使用了以下语句:

BEGIN {
  split("${myShellVariable}",tmp, " ");
  for (i in tmp) myAwkVar[tmp[i]] = tmp[i];
}

然后在我的awk语句的主体部分中,我想测试一个字段是否定义为代码为myAwkVar的{​​{1}}数组变量元素,并且我注意到if ($2 in myAwkVar) ...语句没有不工作 如果在定义了in数组变量之后,以前我没有在BEGIN部分中打印所有数组值:

myAwkVar

如果我将print语句与for循环语句相关联,它将无法正常工作!

BEGIN {
  split("${myShellVariable}",tmp, " ");
  for (i in tmp) myAwkVar[tmp[i]] = tmp[i];
  print myAwkVar["val1"];
  print myAwkVar["val2"];
  print myAwkVar["val3"];
...}

为什么在使用数组变量之前需要打印它的所有元素?

0 个答案:

没有答案