awk 语法错误调用用户定义的函数

awk syntax error calling user defined function

我收到一个语法错误:

/usr/xpg4/bin/awk: file "./test.awk": line 64: syntax error
Context is:
>>>   printf (", %s", date_value  ( , fmt_yyyymmdd ) );   <<<

代码片段为:

fmt_yyyymmdd="yyyymmdd";
printf (", %s", date_value  (, fmt_yyyymmdd ) );

...

function date_value(string, format)
{
    return "20150101";
}

我无法理解语法错误在哪里。 一个非常相似的语句(只有一个参数)不会产生语法错误并且可以正常工作。

printf (", %s", char_value  ( ) );

对我来说,awk 似乎要么不允许调用参数为用户定义变量或文字的用户定义函数,要么不允许调用具有多个参数的用户定义函数。很遗憾我对awk不精通

我认为问题在于您如何调用该函数。在自定义函数中,名称和参数之间不能有任何space,使用:

printf (", %s", date_value(, fmt_yyyymmdd ) );