【问题标题】:Replace space with "NULL" in awk在 awk 中用 \"NULL\" 替换空格
【发布时间】:2022-11-15 01:10:44
【问题描述】:

我正在尝试使用 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}
}'

电流输出 预期产出

【问题讨论】:

标签: linux shell awk


【解决方案1】:

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

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

【讨论】:

  • 感谢您的回复这不是用“NULL”字符串替换空格或空值请建议我是否还有其他事情可以做
  • @User_01,那么我会要求您使用输入和预期输出示例编辑您的问题,然后让我知道。
【解决方案2】:
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”的表格单元格。

【讨论】:

    猜你喜欢
    • 2017-03-31
    • 2012-12-28
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 2014-04-07
    相关资源
    最近更新 更多