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

时间:2015-02-03 11:32:11

标签: awk

我收到语法错误:

/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。

1 个答案:

答案 0 :(得分:2)

我认为问题在于你如何调用这个函数。在用户定义的函数中,名称和参数之间不能存在任何空格,请使用:

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