1

我正在使用如下脚本

脚本

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 值不是正确的值......

4

1 回答 1

2

我将您的问题理解为“如何在调用 awk 的外壳中使用我的 awk 脚本的结果”。事实是,这并不是微不足道的。您不会期望能够在 shell 中轻松使用 C 程序或 python 脚本的输出。awk 也是如此,它本身就是一种脚本语言。

有一些解决方法。对于一个健壮的解决方案,将 awk 脚本中的结果以适当的简单格式写入文件,然后从 shell 中读取它们。作为 hack,您还可以尝试使用$(). 将其与set命令结合起来,您可以执行以下操作:

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

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

于 2012-06-22T18:41:38.460 回答