2016-08-28 16 views
-1

私は1つの要件の真ん中にいます.iはAwkを使用して見出しに色を付けたいと思います。私は以下のコードを使用しましたが、このテーブルのフルカラーを表示するので、誰でもこれを達成してください。Awk-html形式のスクリプト

awk 'BEGIN{print "<table border=1 width=100% cell spacing=0 cell padding=0 align=center>" {print "<tr>";for(i=1;i<=NF;i++) {print "<td bgcolor=red>" $i"</td>";print "</tr>"} END{print "</table>"}' mail_send.txt 

注:

は、以下の私のコードでメールsend.txtファイルには、データが表に印刷する必要が含まれています。 CELLSPACINGのCELLPADDINGでも固定タイプミス - - 私はカップルの行方不明中括弧を追加しました

答えて

0

は、「あなただけの行番号(NR)をテストする必要がありますが、あなたはドンbgcolor属性

awk ' 
BEGIN { 
    print "<table border=1 width=100% cellspacing=0 cellpadding=0 align=center>" 
} # this brace was missing 
{ 
    print "<tr>" 
    for(i=1;i<=NF;i++) { 
# set bgcolor attribute only for first line 
    print "<td" (NR>1? ">": " bgcolor=red>") $i "</td>" 
    print "</tr>" 
    } 
} # this brace was missing 
END { 
    print "</table>" 
} 
' 
+0

ありがとうございます。私はあなたのコメントごとに編集しました。あなたのコメントごとに編集しました。{print "

"} {print ""; for i = 1; i <= NF; i ++) "​​" $ i ""を印刷; "} END {print"
"} 'mail_send.txtを印刷しますが、最初の行の色のみを表示します。つまり、NR = 1の場合は色でなければなりません。それをお勧めしますか? –

0

ためのNR == 1のチェックを追加しました各フィールドをテキストで囲むループが必要な場合は、gsub()は次のようになります。

$ cat tst.awk 
BEGIN { 
    print "<table border=1 width=100% cellspacing=0 cellpadding=0 align=center>" 
} 
{ 
    gsub(/[^[:space:]]+/,"<td" (NR>1? "" :" bgcolor=red") ">&</td>") 
    print "<tr>" $0 "</tr>" 
} 
END { 
    print "</table>" 
} 

$ cat file 
stuff nonsense 
foo bar 

$ awk -f tst.awk file 
<table border=1 width=100% cellspacing=0 cellpadding=0 align=center> 
<tr><td bgcolor=red>stuff</td> <td bgcolor=red>nonsense</td></tr> 
<tr><td>foo</td> <td>bar</td></tr> 
</table> 
+0

私は上記のコードを試してみました:awk 'BEGIN {print "

"} {gsub(/ [^ [:space:] ] +/" 1?" ":" bgcolor = red ")">& ")" "$ 0" "} END {print"
"} 'mail_send.txt –

+0

これは役に立ちましたもしエラーメッセージが含まれていれば、エラーのデバッグにどのように役立つのでしょうか? –

+0

私の間違い申し訳ありませんが、私はこのエラーを受けています:1行目の近くに構文エラーと違法なステートメントがあります。 –

関連する問題