在 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}
#!/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 {
....
I am trying to add a function in awk, it is giving me syntax error.
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
The awk version is:
bash-3.2$ awk --version
GNU Awk 3.1.5
I am calling the awk like the following:
gawk -F',' -f script.awk ${file}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你的for循环中缺少一个结束'}'。
我还在
tolower
前面添加了一个空格,只是为了使该函数更明确。you're missing a closing '}' on your for loop.
I've also added a space in front of
tolower
, just to make that function explicit.