awk if(cond1 || cond2)什么都不过滤

时间:2017-12-19 18:30:40

标签: bash awk

这就是我想在理论上运行的内容

    awk 'BEGIN {FS=OFS=","}
               {if( $4 != "" || $4 != "Store Number")
               print $2}' $file >>out;

相反,我从$ file获得所有记录(即没有应用条件)

但是,我已检查过以下情况:

    awk 'BEGIN {FS=OFS=","}
               {if( $4 != "")
               print $2}' $file >>out;

尝试了大多数措辞的组合,包括!(cond1 || cond2),!〜,if((cond1)||(cond2)),但都没有效果。我在Windows 10 bash中运行awk。

2 个答案:

答案 0 :(得分:1)

$4 != "" || $4 != "Store Number"

因为这显然是不可能的,所以它不会过滤任何东西,如你所见。

您可能打算使用""

另外,如果您使用"Store Number"的条件部分,则可以稍微简化代码:

&&

答案 1 :(得分:0)

不是b包括所有内容(除非a == b)。

答案:!= a&& != B

感谢您的快速解答;是时候了解我的集合/逻辑。