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と評価された場合にのみ、exp​​r2が評価されます。 次の例はこれを示しています-

[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.