如何 运行 if 条件仅在 awk 中的某些列上

How to run if condition only on certain columns in awk

我有一个包含如下所示列的文件:

row1  0.15  0.03
row2  0.06  0.028
row3  0.05  0.05
row4    
row5        0.09    
row6    

如果 col2=col3 中的值,我想通过删除行来过滤文件。这是写“$2=$3”的非常简单的条件。但是,当应用 $2=$3 条件时,还会过滤 col2 和 col3 中具有空白值的行。我希望此条件仅在具有值的行上为 运行。示例输出如下所示。仅过滤第 3 行。即使也满足条件它没有任何整数值。

row1  0.15  0.03
row2  0.06  0.028
row4    
row5        0.09    
row6

我知道这很简单,但是当我尝试以下方式和其他几种方式时它不起作用,它会打印原始文件。

awk -F '\t' '!="" && != "" {==}1' OFS="\t"

使用 awk:

awk -F '\t' -v OFS='\t' ' == "" ||  != ' filename
  • 代码 == "" || != 只是一个条件,如果为真则执行默认操作(打印)。
  • 不需要显式检查 == "",因为在这种情况下 == "" != 为真。