Chinaunix首页 | 论坛 | 博客
  • 博客访问: 585557
  • 博文数量: 151
  • 博客积分: 3330
  • 博客等级: 中校
  • 技术积分: 1686
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-08 02:41
文章存档

2011年(151)

分类: LINUX

2011-04-27 00:36:33


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


阅读(7455) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~