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 ) );
我收到一个语法错误:
/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 ) );