shell 在awk中将空格替换为“NULL”

gdx19jrr  于 2022-11-16  发布在  Shell
关注(0)|答案(2)|浏览(278)

我正在尝试使用shell脚本中的awk命令将一个文本文件转换为HTML。由于文本文件是从服务器自动生成的,它包含服务器响应,因此文件中有一些空值,如下所示

A 00
B 00
C 
D 
E 00

我想用字符串“NULL”或“No response”替换此空值。请建议如何实现。

我试过这个

awk '{print "<tr>";for(i=1;i<=NF;i++){
if($i==" ")
   {   
       print "<td>$i</td>";
   }
.........{some lines of code}
}'

当前输出

预期输出

fnvucqvd

fnvucqvd1#

对于您显示示例,请尝试以下awk代码您需要使用三元运算符来检查i变量是否为NULL,然后打印字符串NULL,否则打印其实际值本身

awk '
{
  print "<tr>"
  for(i=1;i<=NF;i++){ 
       print "<td>"($i!=""?$i:"NULL") "</td>";
   }
.........{some lines of code}
}'
ubof19bj

ubof19bj2#

awk '{print "<tr>";for(i=1;i<=NF;i++){
   {   
       print "<td>"$i"</td>";
   }
   NF < 2 {
       print "<td>NULL</td>";
   }
.........{some lines of code}
}'

Awk使用空格作为字段分隔符。您的数据似乎缺少需要替换的字段。这是一种方法。如果字段数少于两个,则将表格单元格打印为“NULL”。

相关问题