AWK支持以下逻辑运算符-
逻辑 &&
expr1 && expr2
如果expr1和expr2都为true,则输出为true,否则返回false。当且仅当expr1判断为true时,才会判断expr2。以下示例检查给定的一位数字是否为八进制格式。
[Learnfk]$awk 'BEGIN { num=5; if (num >= 0 && num <= 7) printf "%d is in octal format\n", num }'
在执行此代码时,您将获得以下输出-
5 is in octal format
逻辑 ||
expr1 || expr2
如果expr1或expr2判断为true,则判断输出为true;否则返回false。当且仅当expr1的判断输出为false时,才会判断expr2。以下示例演示了这一点-
[Learnfk]$awk 'BEGIN { ch="\n"; if (ch == " " || ch == "\t" || ch == "\n") print "Current character is whitespace." }'
在执行此代码时,您将获得以下输出-
Current character is whitespace
逻辑 !
它由感叹号(!)表示,以下示例演示了这一点-
! expr1
它返回expr1的逻辑补码。如果expr1计算输出为true,则返回0,否则返回1。如,以下示例检查字符串是否为空。
[Learnfk]$awk 'BEGIN { name=""; if (! length(name)) print "name is empty string." }'
在执行此代码时,您将获得以下输出-
name is empty string.