※MACターミナル(BSD系)での動作確認です。

スポンサーリンク

awkのwhile(条件){処理}のサンプルコード

※awkの使い方をまとめて一覧にしました。
参考:awk入門-使い方まとめ一覧-

in.txtを1行ずつ読み込んで、1列目の3乗を求めるサンプルコードになります。

下記のようにin.txtがあったとします。

 $ cat in.txt 
1
2
3

下記がサンプルコードになります。
 $ cat sample.awk 
#!/bin/sh
cat in.txt | awk '		
	{
		i = 1
		p = 1
		while(i <= 3){
			p = p * $1
			i++
		}
		print $1 "の3乗は" p
	}
'

下記が実行結果になります。
 $ ./sample.awk 
1の3乗は1
2の3乗は8
3の3乗は27

スポンサーリンク

awkのwhile() breakのサンプルコード

同様の処理をwhile() breakで書いてみます。

同様に下記のin.txtがあったとします。

 $ cat in.txt 
1
2
3

下記がサンプルコードになります。
whileでループ処理させて、breakでwhile文の処理から抜け出します。
 $ cat sample.awk 
#!/bin/sh
cat in.txt | awk '		
	{
		i = 1
		p = 1
		while(1){
			p = p * $1
			i++
			if(i > 3){
				break
			}
		}
		print $1 "の3乗は" p
	}
'

下記が実行結果になります。
 $ ./sample.awk 
1の3乗は1
2の3乗は8
3の3乗は27

スポンサーリンク