Section Next | Prev


4.2.5 繰り返し(for)

for は特定の変数を適当な範囲に変化させ、繰り返します。文法的には算術型と列挙型の 2つがあります。
	for(初期値;終了値;増分) {
		処理
	}

	for(変数 in 配列orデータ並び){
		処理
	}
算術型 for
算術型 for文は変数に初期値を設定、増分ずつ変化させ、終了条件を満たしたとき、 ループが終了します。
列挙型はデータ列を配列またはリストとして変数に代入するループです。 in 演算子は続く配列の添字を返します。

また break, continue により、ループの任意の個所でループの外または先頭に制御を移します。

次の例は数列 1〜3 を生成します。

	$ awk 'END{for(i=1;i<=3;i++) print i}' /dev/null
	1
	2
	3
	/dev/null は常に EOF を返すため、実行直後に END パターンにマッチする
列挙型 for
次の例では passwd(4) を読みとり、ユーザ名と UID を連想配列に格納。 その内容を表示しています。
	$ awk -F: '{user[$3]=$1}END{for(n in user)print n,user[n]}' /etc/passwd
	3 bin
	4 uucpa
	6 auth
	7 cron
	8 lp
	9 tcb
連想配列を for 文で参照した場合、その順序はハッシュ・テーブルに依存するため 予想できません。

Section Next | Prev