HTML标签的AWK脚本编制问题

时间:2018-07-28 01:26:47

标签: shell awk

下面是数据文件(结果)的内容-

13450708,13470474,US,15

24954,24845,JPN,44

14258992,14365059,US,4

24954,24845,IND,44

我想将以上数据集以表格格式发送到电子邮件。为此,我使用下面的awk脚本。 现在我在这里面临的挑战是-如果数据集中的最后字段(即此处15,44,4,44)> 40,我想将背景色设为红色。 您能告诉我如何在下面的代码中使用它吗?

awk 'BEGIN{

FS=","

print  "<HTML>""<TABLE border="1"><TH>Store_count</TH><TH>Store_sold</TH><TH>Store_code</TH><TH>Backlogs</TH>"

}

 {

printf "<TR>"

for(i=1;i<=NF;i++)

printf "<TD>%s</TD>", $i

print "</TR>"

 }

END{

print "</TABLE></BODY></HTML>"

 }

' results > file1.html

2 个答案:

答案 0 :(得分:0)

我真的不明白您为什么要为此苦苦挣扎,因为您似乎已经掌握了所有信息,可以做自己想要做的事情,但是无论如何-只需更改:

printf "<TD>%s</TD>", $i

printf "<TD%s>%s</TD>", ( (i==NF) && ($i > 40) ? " style=\"background-color:red\"" : "" ), $i

或者如果您不喜欢三元表达式:

printf "<TD"
if ( (i==NF) && ($i > 40) ) {
    printf " style=\"background-color:red\""
}
printf ">%s</TD>, $i

或类似的

答案 1 :(得分:-1)

任何人都意识到我在下面的代码中无论如何为我犯了错误,这给了预期的结果。 for(i = 1; i <= NF; i ++)

如果(i == 4 && $ 4> = 40)

{

printf“%s”,$ i

}

其他

{

printf“%s”,$ i

}

打印“”

}

END {

打印“”

}

'results1> file1.html