我收到语法错误:
/usr/xpg4/bin/awk: file "./test.awk": line 64: syntax error
Context is:
>>> printf (", %s", date_value ( $3, fmt_yyyymmdd ) ); <<<
代码片段是:
fmt_yyyymmdd="yyyymmdd";
printf (", %s", date_value ($22, fmt_yyyymmdd ) );
...
function date_value(string, format)
{
return "20150101";
}
我无法理解语法错误的位置。 一个非常相似的语句(只有一个参数)不会产生语法错误并且可以正常工作。
printf (", %s", char_value ( $2) );
对我来说,似乎awk要么不允许调用用户定义的函数,参数是用户定义的变量或文字,要么调用具有多个参数的用户定义函数。遗憾的是,我不熟悉awk。
答案 0 :(得分:2)
我认为问题在于你如何调用这个函数。在用户定义的函数中,名称和参数之间不能存在任何空格,请使用:
printf (", %s", date_value($22, fmt_yyyymmdd ) );