if 语句
if(表达式){语句;语句;...}
范例
awk '{if ($6 > 50) print $1}' datafile
awk '{if ($6 > 20 && $6 <= 50)} {safe++;print "ok"}}' datafile
if /else 语句
{if (表达式){语句;语句;...}
else {语句;语句;...}
}
范例:
awk '{if($6 > 50) print $1;else print "$2"}' datafile
awk '{if ($6 > 50){count++;print $3}else { x+5;print $2}}' datafile
注意:if 条件后面的语句块,如果是单个语句,可以省略花括号,如果是多个语句,必须用花括号
if/else else if 语句
{if (表达式){语句;语句;....}else if(表达式){语句;语句;...}else if(表达式){语句;语句;...}else {语句;语句...}}
范例:
{if ($3 > 89 && #3 < 101) agrade++
else if ($3 > 79) bgrade++
else if ($3 > 69) cgrade++
else if ($3 > 59) dgrade++
else fgrade++
}END{print "the number is " fgrade}
循环语句
awk 有3种类型的循环:while 循环,for 循环, 特殊的for循环
while循环:
使用while循环的时候第一步先给一个变量设初始值。然后在while表达式中测试该变量。
范例:
awk '{i = 1;while (i <= NF){print NF,$;i++}}' datafile
变量i 初始为1,当i小于等于记录的字段数NF时,先执行print语句,然后i加1.接下来又重新测试表达式,直到i大于NF的值。
for循环
for循环的圆括号中要3个表达式,前两个分别是初始化表达式和测试表达式,第三个则用于更新表示大所用的变量。
范例:
awk '{for(i = 1;i <= NF;i++) print NF,$i}' dafafile
变量i初始化为1,然后测试它是否小于或等于记录的字段数NF,若是,则打印NF和$i的值,然后将i加1
阅读(7473) | 评论(0) | 转发(0) |