码迷,mamicode.com
首页 > 其他好文 > 详细

awk if语句

时间:2015-05-04 08:44:26      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:awk   awk if语句   awk命令   

awk命令以if结构开头的话句属于操作句。条件模式(conditional pattern) 中。if是隐含的。而条件操作语句的if则是直接声明的,后面跟了一个用圆括号括起来的表达式。如果该表达式的运算结果为真(非0或非空),则执行表达式后的语句(或语句块)。如果跟在条件表达式后面的语句不止一条,就要用分号或换行符把它们隔开,还要用花括号把这一组语句都括起来,以作为一个块来被执行。

格式

if(表达式) {
  语句;语句;...
}

范例

$ awk ‘{if($6 > 50) print $1 "Too high"}‘ filename

说明:在if操作块中对表达式进行测试。如果第6个字段的值大于50,就执行打印语句。由于跟在表达式后面的是单条语句,所以不需要加花括号(filename代表输入文件)。

范例

$ awk ‘{if($6 > 20 && $6 <=50) {safe++;print "OK"}}‘ filename

说明:在if操作块中测试表达式。如果第6个字段的值大于20并且小于50,就要将表达式后面的那些语句作为一个块来执行,因此,必须用花括号把它们括起来。


if/else 语句
if/else语句实现双路判断。如果关键字if后面的表达式为真,就执行与该表达式关联的语句块。如果这个表达式的运算结果为假或0,则执行关键字else后面的语句块。如果if或else包含多条语旬,就必须用花括号把它们合成一个语句块。

格式

if(表达式) {
  语句;语句;...
} else {
  语句;语句;...
}

范例

$ awk ‘{if($6 > 50) {print $1 " Too high";} else {print "Range is OK";}}‘ filename

说明:如果第一个表达式为真,即第6个字段($6)的值大于50 ,则print函数打印第1个字段和字符串"Too high"。否则就执行else后的语句,打印字符串"Range is OK"。

范例

$ awk ‘{if($6 > 50) {count++;print $3;} else {x+5;print $2;}}‘ filename

说明:如果第一个表达式为真,即第6个字段($6)的值大于50,则执行表达式后面的这个语句块。否则就执行else后面的那个语句块。注意,语句块必须括在花括号中。


if/else和else if语句
if/else和else if语句提供了多路判断功能。如果跟在关键字if后的表达式为真,则执行与该表达式关联的语句块,同时,程序的控制流将跳到与最后一个else关联的最后一个右花括号后,从这个位置继续往下行。否则,控制转到else if测试与其关联的表达式。如果第一个else if的条件为真,则执行对应表达式后的语句。如果else if 的条件表达式都不为真,控制就转到else语句。这个else被称作默认操作,因为只要其他语句都不为真,就执行该else块。

格式

if(表达式) {
  语句;语句;...
} else if(表达式) {
  语句;语句;...
} else if(表达式) {
  语句;语句;...
} else {
  语句;语句;...
}

范例

$ awk {
  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 of failures is "Fgrade
} filename

说明
1. if语句是一个操作,因此必须用花括号括起来。表达式的计算是从左向右进行。如果第一个表达式为假,则整个表达式为假。如果第一个表达式为真,则计算符号逻辑与(&&)后面的那个表达式。如果整个表达式为真,则变量Agrade加1。
2. 如果关键字if后面的表达式值为假,就测试这个else if的表达式。如果该表达式的值为真,就执行它后面的语句。也就是说,如果第3个字段($3)的值大于79,则变量Bgrade加1。
3. 如果头两个条件语句都为假,就测试这个else if 表达式,如果第3个字段($3)的值大于69,则将变量Cgrade加1。
4. 如果头三个条件语句都为假,就测试这个else if表达式,如果第3个字段($3)的值大于59,则将变量Dgrade 加1。
5. 如果上面的表达式都不为真,就执行else块,将变量Fgrade加1。接下来的花括号将结束整个操作块。

awk if语句

标签:awk   awk if语句   awk命令   

原文地址:http://blog.csdn.net/xiyangyang052/article/details/45462505

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!