根据条件在表格中打印

时间:2019-03-14 14:12:12

标签: bash

下面是我创建表的代码

awk -v server=${svr} 'BEGIN{
FS=","
print "=============================="
printf "<h3>ServerName:%s</h3>", server
print "=============================="
print  "<HTML>""<TABLE border="1">"
}
 {
printf "<TR>"
for(i=1;i<=NF;i++)
{
printf "%s", "<td"
if ($i+0==3) printf " bgcolor=#FF3333"
print ">" $i "
elif print ">" ok " bgcolor=#99FF33"</td>"
}
print "</TR>"
 }
END{
print "</TABLE></BODY></HTML>"
 }

在这里,我要尝试的是如果$ i + 0为3,则仅打印表中的值,否则,如果非值是3,则应以bgcolor将$ i + 0的值打印为“ OK”。 >

如您所见,我正在尝试使用elif进行操作,但似乎没有用。

请让我知道如何完成

1 个答案:

答案 0 :(得分:0)

通过更仔细地查看您的代码,我现在已解决了以下问题。

  • 将行print ">" $i "更改为print > "$i",否则可能不确定您是否已测试或仅编写了这段代码,从而导致语法错误。
  • >行中添加了printf "%s", "<td"
  • </td>值之后的if条件下添加了bg,以完成该表的特定行的单元格。

  • 首先将此(print ">" ok " bgcolor=#99FF33"</td>")更改为print "> ok bgcolor=#99FF33</td>",我误解了您想在打印中使用用户变量,但似乎只想将语句打印到控制台。

    < / li>
  • elif更改为else以打印正确的语句if(if语句条件不正确)。

  • '代码的END块之后添加了awk

  • 提到的Input_file名称也要进行编码。

  • 固定的代码格式,以便更好地理解并使其看起来更好:)


awk -v server=${svr} '
BEGIN{
  FS=","
  print "=============================="
  printf "<h3>ServerName:%s</h3>", server
  print "=============================="
  print  "<HTML>""<TABLE border="1">"
}
{
  printf "<TR>"
  for(i=1;i<=NF;i++){
     printf "%s", "<td>"
     if($i+0==3){
        printf "bgcolor=#FF3333</td>"
        print > "$i"
     }
     else{
        print "> ok bgcolor=#99FF33</td>"
     }
   }
   print "</TR>"
}
END{
   print "</TABLE></BODY></HTML>"
}
'  Input_file