我使用awk命令打印值。对于最后一列,如果没有找到值,我需要它来打印'NA'。
例如,在下面的代码中,当$ 3为NULL时,我需要打印为'NA'。
无论如何,我可以包括'if'/'isnull'条件或其他东西。请帮忙。
awk -F" " '{ print $1,"|", $2, "|", $3 }' log_temp.txt > log_template.txt
答案 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}}