※MACターミナル(BSD系)での動作確認です。
awkのwhile(条件){処理}のサンプルコード
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
