Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Awk无法将值存储到数组中_Awk - Fatal编程技术网

Awk无法将值存储到数组中

Awk无法将值存储到数组中,awk,Awk,我使用的脚本如下 剧本 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值不是正确的值…我理解您的问题为“如何在调用awk的shell中使用我的awk脚本的结果”。事实上,这并不是一件小事。您不希望能够在shell中轻松地使用C程序或python脚本的输出。awk也是如此,它本身就是

我使用的脚本如下

剧本

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

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

有一些变通办法。对于健壮的解决方案,将awk脚本中的结果以适当简单的格式写入一个文件,并从shell中读取它们。作为黑客,您还可以尝试使用
$()
将awk的输出直接准备到shell中。将其与
set
命令结合使用,您可以执行以下操作:

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

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

我不确定您想做什么。这是一个shell脚本吗?如果是这样,您就不能从awk外部访问awk的内部变量。您是对的,我只使用shell脚本。但是如果我需要在awk语句之外使用awk变量,我应该怎么做呢。我想到的一个选项是,我可以将该值存储在一个shell脚本变量中,如果是这种情况,我如何在awk语句中访问shell脚本变量。谢谢你我还不确定到底是什么问题。。你能重新措辞吗?你到底期望发生什么,什么不发生?声明-a GET i=1 awk-F'$1{d[$1]+;}{for(c in d){GET[i]=d[c];i=i+1}}}'会话echo${GET[1]}${GET[2]}现在我希望在awk语句之后正确打印GET值。回答得好。我理解您的文件读取选项,但我不理解第二部分(set命令)。你能为我的问题给我举一个set方法的例子吗。谢谢你,我拿到输出了。。我试着用set,它工作了。。谢谢lot@User如果这回答了你的问题并解决了你的问题,你应该在答案旁边-它将奖励你和回答的人一些代表分数,并将此问题标记为已解决。