我试图在 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
Run Code Online (Sandbox Code Playgroud)
看起来您错过了OR操作周围的括号。它应该是:
if(substr($2,1,3)=="301" && ($15=="996" || $15=="429") && $5>=030000 && $5<=035000) ...
Run Code Online (Sandbox Code Playgroud)
请参阅布尔代数。