我试图在 awk 中使用多个“AND”和“OR”条件,但它没有给我所需的输出。相反,它不会读取我用时间“030000”给出的最后一个 &&
条件。
awk -F, '{if(substr($2,1,3)=="301" && $15=="996" || $15=="429" && $5>=030000 && $5<=035000) print $2"|"$15"|"$5}' 2017020* | head -10
3014241320|996|235939
3017943809|996|235953
最佳答案
看起来您错过了 OR
操作周围的括号。应该是:
if(substr($2,1,3)=="301" && ($15=="996" || $15=="429") && $5>=030000 && $5<=035000) ...
参见 boolean algebra .
关于bash - 一个 awk 命令中的 `and` 和 `or` 的多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42096063/