gawk中使用分支语句,while和for语句
1 gawk中使用分支语句
gawk中可以使用if-else
这样的分支语句,其语法与C语言的语法相同,比如data5的内容为:
100 madashuai xiaozhang
200 fandebiao chuzi
300 yufugui cunzhang
输入:
gawk '{if ($1 ==300){x=$1;x=x*x;print x}}' data5
运行后结果为:
90000
当然,gawk中也可以使用else if
和else
语句,同样和C语言的语法相同,输入:
gawk '{if ($1==100) {print $1}else if($1 ==200 ){print $2} else {print $3}}' data5
运行后结果为:
100
fandebiao
cunzhang
2 gawk中使用while语句
gawk中可以使用while
循环,语法与C语言相同,比如data6
的内容如下:
1 2 3 4
5 6 7 8
9 10 -3 -99
输入:
gawk '{sum=0;i=1;while (i<=4){sum+=$i;i++;}avg=sum/3;print "average:",avg}' data6
运行后结果为:
average: 3.33333
average: 8.66667
average: -27.6667
上面的命令是把每一行的四个数字求和除以3然后打印出来。同时,gawk的while循环中也可以使用break和continue,输入
gawk '{sum=0;i=1;while (i<=4){sum+=$i;if (i==2){break}i++;}avg=sum/3;print "average:",avg}' data6
运行后结果为:
average: 1
average: 3.66667
average: 6.33333
3 gawk中使用for语句
gawk中使用for语句跟C语言相同,输入的data6文件内容为:
1 2 3 4
5 6 7 8
9 10 -3 -99
输入如下命令:
gawk '{sum=0;for (i=1;i<=4;i++){sum+=$i;}avg=sum/3;print "average:",avg}' data6
运行后结果为:
average: 3.33333
average: 8.66667
average: -27.6667