在awk中添加函数时出现语法错误

时间:2011-12-20 20:46:16

标签: shell scripting awk

#!/bin/gawk
function convertToCamelCase(text)
{
        split(text, words, " "); for (i=1; i<=length(words); i++) { res = res toupper(substr(words[i],1,1))tolower(substr(words[i],2))" ";
        return res;
}
function convertToThreeDigitDecimal(num)
{
        return sprintf("%7.3f",(num/1000000));
}
BEGIN {
....

我试图在awk中添加一个函数,它给了我语法错误。

bash-3.2$ ./execute_all_stats.sh.bak file.csv
awk: get_mkt_stats.awk.bak:7: function convertToThreeDigitDecimal(num)
awk: get_mkt_stats.awk.bak:7: ^ syntax error
awk: get_mkt_stats.awk.bak:11: BEGIN {
awk: get_mkt_stats.awk.bak:11: ^ syntax error

awk版本是:

bash-3.2$ awk --version
GNU Awk 3.1.5

我正在调用awk,如下所示:

gawk -F',' -f script.awk ${file}

1 个答案:

答案 0 :(得分:2)

你在for循环中错过了一个结束'}'。

function convertToCamelCase(text)
{
    split(text, words, " ");
    for (i=1; i<=length(words); i++) { 
        res = res toupper(substr(words[i],1,1)) tolower(substr(words[i],2))" "
     }
 return res;
}

我还在tolower前面添加了一个空格,只是为了使该功能显式化。

我希望这会有所帮助。

P.S。请记住通过勾选复选标记http://i.imgur.com/uqJeW.png来接受最能解决问题的答案(如果有的话)。当您看到良好的问答时,请使用灰色三角形http://i.imgur.com/kygEP.png将其投票。请注意,向他人“提供”声望积分并不意味着扣除您的声誉积分(除非您已经发布了奖励)。