2013-04-20 58 views
0

为什么是17行不工作(代码注释)?:试图从名字第一个字母NAWK脚本的HTML

#!/bin/nawk -f 

BEGIN { 
    print "<html>" 
    print "<body>" 
    print " <table border=2>" 
    print " <tr>" 
    print "  <th>Name</th>"    
    print "  <th>Username</th>"    
    print "  <th>Email</th>"      
    print " </tr>" 
} 

{ 
    print " <tr>" 
    print "  <td>" $2 " " $1"</td>"     
    print "  <td>"'{Substr($1,1,1)}' "</td>" ###### Line 17     
is 
    print "  <td>" $3 "</td>"    

我可以在把一份声明中一样,在第17行?我试图得到名字的第一个字母。

+1

'substr'? – fedorqui 2013-04-20 09:03:36

+0

是的,我需要在那里抛出一个toLower – 2013-04-20 09:05:03

+0

是的,但我的意思是函数是'substr',而不是'Substr'(就我而言)。 – fedorqui 2013-04-20 09:05:54

回答

1

应删除该行中的单引号。目前,引用允许shell解析Substr,并且你不希望发生这种情况。

此外,命令是substr不是Substr。

print "  <td>"'{Substr($1,1,1)}' "</td>" ###### Line 17  

变化TO-:在小写

print "  <td>" substr($1,1,1) "</td>" 
+0

Gosh , 我是个白痴。在整个过程中,我一直在使用错误的语句在我的垃圾箱中进行移位+插入操作。我是一个白痴(不是真的,只是被烧掉)一直在写这个和SQL语句过去10个小时。大声笑。感谢您的帮助。我想到了。 – 2013-04-20 09:46:10

+0

但有一件事,我没有设置noclobber,而当我运行以下statemetn时:mk_html.awk sample.txt> mysample.html它一直说stError中存在mysample.html arlready。为什么是这样? – 2013-04-20 09:48:15

+1

用'set + o noclobber'关闭noclobber。或者更好地使用'> |'例如'mk_html.awk sample.txt> | mysample.html'强制覆盖。 – suspectus 2013-04-20 10:31:49

相关问题