Awk无法将值存储到数组中

时间:2012-06-22 18:10:24

标签: awk

我正在使用下面的脚本

SCRIPT

declare -a GET

i=1

awk -F "=" '$1 {d[$1]++;} {for (c in d) {GET[i]=d[c];i=i+1}}' session

echo ${GET[1]} ${GET[2]}

说明

问题是外面打印的GET值不正确...

1 个答案:

答案 0 :(得分:2)

我理解你的问题是“如何在调用awk的shell中使用我的awk脚本的结果”。事实是,它并非真正微不足道。您不希望能够在shell中轻松地使用C程序或python脚本的输出。与awk相同,awk是一种自己的脚本语言。

有一些解决方法。要获得强大的解决方案,请将awk脚本中的结果以适当简单的格式写入文件,并从shell中读取它们。作为一个hack,您还可以尝试使用$()将awk的输出直接准备到shell中。将它与set命令结合起来就可以了:

set -- $(awk <awk script here>)

然后使用$1 $2等,但你必须小心awk输出中的空格。