awk - 如果为null,则使用默认值打印最后一列值

时间:2017-12-12 10:35:18

标签: unix awk

我使用awk命令打印值。对于最后一列,如果没有找到值,我需要它来打印'NA'。

例如,在下面的代码中,当$ 3为NULL时,我需要打印为'NA'。

无论如何,我可以包括'if'/'isnull'条件或其他东西。请帮忙。

awk -F"    " '{ print $1,"|", $2, "|", $3 }' log_temp.txt > log_template.txt

2 个答案:

答案 0 :(得分:2)

  

无论如何,我可以提供一个' if' /' isnull'条件或   一些东西。请帮忙。

您需要使用ternary operator

<强> 语法:

condition ? value_if_true : value_if_false

第三栏

awk '{ print ($3==""?"NA":$3) }' infile

所以它变成

awk '{ print $1, "|" , $2, "|",  ($3==""?"NA":$3) }' infile

您还可以设置输出字段分隔符变量(OFS

awk -v OFS='|' '{ print $1, $2, ($3=="" ? "NA" : $3) }' infile

print ($3=="" ? "NA" : $3)

相同
if( $3=="" ){
    print "NA"
}else{
    print $3
}  
  

对于最后一列,您可以使用NF变量,该变量不包含任何字段   记录,而$NF是最后一栏

答案 1 :(得分:0)

您可以使用sed执行此任务。

如果分隔符为&#39; 4个空格&#39;在输入文件中。

您可以使用字段数

设置var
{{1}}