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.

参考链接

https://www.learnfk.com/awk/awk-logical-operators.html