2013-04-20 55 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

相關問題