Awk-logical-operators
提供:Dev Guides
AWK-論理演算子
AWKは次の論理演算子をサポートしています-
論理積
*&&* で表されます。 その構文は次のとおりです-
構文
expr1 && expr2
expr1とexpr2の両方がtrueと評価される場合、trueと評価されます。そうでない場合はfalseを返します。 expr2が評価されるのは、expr1がtrueと評価された場合のみです。 たとえば、次の例では、指定された1桁の数字が8進数形式であるかどうかを確認します。
例
[jerry]$ awk 'BEGIN {
num = 5; if (num >= 0 && num <= 7) printf "%d is in octal format\n", num
}'
このコードを実行すると、次の結果が得られます-
出力
5 is in octal format
論理和
*||* で表されます。 論理ORの構文は-
構文
expr1 || expr2
expr1またはexpr2のいずれかがtrueと評価されると、trueと評価されます。そうでない場合はfalseを返します。 expr1がfalseと評価された場合にのみ、expr2が評価されます。 次の例はこれを示しています-
例
[jerry]$ 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を返します。 たとえば、次の例では、文字列が空かどうかを確認します。
例
[jerry]$ awk 'BEGIN { name = ""; if (! length(name)) print "name is empty string." }'
このコードを実行すると、次の結果が得られます-
出力
name is empty string.