Section Next | Prev


4.2.4 条件判断(if)

if 文は多くの言語と同じく条件判断に用います。
	if( 条件 ) {
		処理
	}

	if( 条件 ) {
		処理
	} else {
		処理
	}
条件には算術演算、論理演算、文字演算が利用でき、主な演算子は次の通りです。

awk の主な演算子
演算子 数値データの場合 文字データの場合
==, != 等しい、等しくない 一致する、しない
>, < 数値の大小比較 文字数の大小、同じ場合は辞書順の大小
>=, <= 数値として以上、以下 同上または等しい
~, !~ N/A 文字列の部分一致、不一致
!,||,&& 論理否定、論理和、論理積 同左

次の例は、標準入力の値とデータ "123" とを比較し、大小を表示します。
	$ 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


Section Next | Prev