awk条件语句源于C语言,可以用他们对包含判断语句的程序进行控制。
if语句
格式: {if (expression){
statement; statement; ...
}
}
例12:
$ awk '{if ($1 <$2) print $2 "too high"}' test 如果第一个域小于第二个域则打印。 $ awk '{if ($1 < $2) {count++; print "ok"}}' test 如果第一个域小于第二个域,则count加1,并打印ok。 if/else语句 格式: {if (expression){ statement; statement; ... } else{ statement; statement; ... } } 例13: $ awk '{if ($1 > 100) print $1 "bad" ; else print "ok"}' test
如果$1大100则打印$1 bad,否则打印ok。
$ awk '{if ($1 > 100){ count++; print $1} else {count--; print $2}' test
如果$1大于100,则count加一,并打印$1,否则count减一,并打印$1。
if/else else if语句
格式: {if (expression){
statement; statement; ...
}
else if (expression){
statement; statement; ...
}
else if (expression){
statement; statement; ...
}
else {
statement; statement; ...
}
}
19.循环语句
常常用来对记录中的每个字段重复执行某些操作,或者在END块中用来循环处理某个数组中的所有元素。三种类型的
循环:while循环,for循环,特殊for循环
while循环
第一步给一个变量赋初值,在while中测试该变量,若值为真(非0),则进入循环执行语句。do while循环与
while类似,唯一的区别是do while至少执行一次循环体,然后才测试表达式。
例14:
$ awk '{ i = 1; while ( i <= NF ) { print NF,$i; i++}}' test 变量的初始值为1,若i小于可等于NF(记录中域的个数),则执行打印语句,且i增加1。直到i的值大于NF. for循环 for循环的圆括号中需要3个表达式,前两个分别是初始化和测试表达式,第3个用于更新测试表达式所用的变量。 注意,for循环中,第一条语句只能初始化一个变量(这与C语言不同) 例15: $ awk '{for (i = 1; i

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code