我想将一个2D数组作为参数传递给awk中的函数。我试过这个
add(element1,element2,array) -> this "array" could be bigArray,smallArray etc
function add(element1,element2,array)
{
if(!(element1 SUBSEP element2 in array))
{
array[element1,element2]
}
}
add函数中的数组不断变化。但是我收到一条错误,指出“尝试将标量参数数组用作数组”。但是,当我通过一维数组时,它的作用相同。你能不能帮我解决这个问题
答案 0 :(得分:0)
刚刚评论过,使用以下脚本测试它:
script.awk
的内容:
BEGIN {
a["one", "two"] = 1;
el1 = "one";
el2 = "two";
add( el1, el2, a );
el1 = "one";
el2 = "three";
add( el1, el2, a );
print "length of array: " length( a );
}
function add(element1,element2,array)
{
if(!(element1 SUBSEP element2 in array))
{
printf "Elem1 -> %s\t\tElem2 ->%s\n", element1, element2
array[element1,element2] = 2;
}
}
像以下一样运行:
awk -f script.awk
使用以下输出:
Elem1 -> one Elem2 ->three
length of array: 2