awk遍历中的多维数组

awk遍历中的多维数组,awk,Awk,我计划在awk中使用多维数组,并以如下格式存储详细信息 代码 细节 我只想知道,我怎样才能遍历它并打印结果。我还在shell脚本程序中使用这个awk,所以我想知道我是否能够在shell脚本中使用相同的数组,如果可以的话,如何传输这个数组。我在很多网站上搜索过,我没有找到正确的解决方案。你能帮我一下吗。谢谢。多维数组中的键用subsp变量的值分隔,使用它来拆分它们。按如下方式遍历数组: for ( key in arr ) { split( key, values, SUBSEP )

我计划在awk中使用多维数组,并以如下格式存储详细信息

代码

细节


我只想知道,我怎样才能遍历它并打印结果。我还在shell脚本程序中使用这个awk,所以我想知道我是否能够在shell脚本中使用相同的数组,如果可以的话,如何传输这个数组。我在很多网站上搜索过,我没有找到正确的解决方案。你能帮我一下吗。谢谢。

多维数组中的键用
subsp
变量的值分隔,使用它来拆分它们。按如下方式遍历数组:

for ( key in arr ) {
    split( key, values, SUBSEP )
    ## values[1] -> First value of the multidimensional array.
    ## values[2] -> Second value of the multidimensional array.
}

谢谢你的回答。在我的情况下,我不改变我的子集,所以我假设它是空间。我像下面这样使用awk'{FS=“=”;if($1~/Hi/){customer=$2;}否则if($1~/bye/){split($2,g,“[\”]);h[customer,g[2]+;}END{for(key in arr){split(key,values,“”)打印值[1],值[2],值[1],值[2]}…但我在这方面遇到了一个错误。@User:我看不到您的错误,但是默认情况下
subsp
不是一个空格。它是
\034
,一个不常见且不可见的字符。所以我可以用\034替换空格。我打印值的方法正确吗…实际上我没有得到第三个参数的值,我是指h[values[1],values[2]]哪个是伯爵……有什么建议吗pls@User:不要直接使用
\034
,请使用变量
subsp
。数组不能从AWK传输到shell。您可以打印AWK脚本中的值,并将其读入shell中的数组(例如,支持数组的Bash)。请注意,Bash不支持多维数组,而且在版本4之前,它不支持关联数组。或者,您可以用AWK编写整个脚本并完全访问数组。
for ( key in arr ) {
    split( key, values, SUBSEP )
    ## values[1] -> First value of the multidimensional array.
    ## values[2] -> Second value of the multidimensional array.
}