if( 条件 ) {
処理
}
if( 条件 ) {
処理
} else {
処理
}
条件には算術演算、論理演算、文字演算が利用でき、主な演算子は次の通りです。
| 演算子 | 数値データの場合 | 文字データの場合 |
|---|---|---|
| ==, != | 等しい、等しくない | 一致する、しない |
| >, < | 数値の大小比較 | 文字数の大小、同じ場合は辞書順の大小 |
| >=, <= | 数値として以上、以下 | 同上または等しい |
| ~, !~ | N/A | 文字列の部分一致、不一致 |
| !,||,&& | 論理否定、論理和、論理積 | 同左 |
$ cat if.awk
BEGIN{
data=123
}
{
if( $0+0 > data ) { # 数値比較
printf "%d > %d\n", $0, data
} else {
printf "%d <= %d\n", $0, data
}
if( $0"" > data ) { # 文字比較
printf "%s > %s\n", $0, data
} else {
printf "%s <= %s\n", $0, data
}
}
$ awk -f if.awk
0 # 0 は数値、文字とも 123 より小
0 <= 123
0 <= 123
A
0 <= 123 # A は数値変換後 0 となってしまう
A > 123
12a
12 <= 123 # 12a は数値変換後 12 となってしまう
12a > 123