awk 比较并添加具有 Null 值的新列

awk 比较并添加具有 Null 值的新列

我在制表符分隔的 csv 文件中输入了带有空值的输入。我想检查一个值是否为例如 >= 800 并将结果添加到新列中。

输入

a
623

616
803

输出

a     b
623   no
      no
616   no
803   yes

答案1

awk -v minval=800 'BEGIN{ FS=OFS="\t" }
  FNR==1{ print $0, "b"; next } # print header
  { print $0, ($1 >= minval ? "yes" : "no") }
' file

输出:

a       b
623     no
        no
616     no
803     yes

您不需要显式检查第一列是否为空。如果将字符串与数字进行比较,数字将转换为字符串。按字典顺序比较时,空字符串始终位于任何非空字符串之前,因此它永远不会大于或等于非空字符串。

相关内容