awk 判断与循环语句
awk 作为一门语言,支持顺序、判断、循环三种语句。a
wk的这三种语句借鉴了C语言,可以控制程序的流程。
条件语句有if/esle,循环语句有for循环、while循环、do/while循环。
- if 语句
语法格式:
{
if(expression) {
statement;statement;... # statement之间以分号隔开
}
}
eg.
awk 'BEGIN{print "if"}{if($1<$2) print $2 " is big"}' /etc/passwd
-if/else 语句
语法格式:
{
if(expression) {
statement;statement;... # statement之间以分号隔开
}
else {
statement;statement;...
}
}
eg.
awk 'BEGIN{print "if/else"} {if($1<$2) print $2 " is big";else print $1 " is big"}' /etc/passwd
- if/else if语句
提供
条件分支语句的执行
语法格式:
{
if(expression) {
statement;statement;... # statement之间以分号隔开
}
else if(expression) {
statement;statement;...
}
else if(expression) {
statement;statement;...
}
...
else{
statement;statement;...
}
}
解释:程序会从上到下依次对条件expression进行判断,一旦发现某个expression为真,立即执行紧跟的statements语句块。执行完后立刻退出整个if语句,而不去执行下面的expression判断。
如果所有的expression都无法得到满足,则执行最后一个else语句块!
循环是一种重复执行一个或多个操作的结构。
- while循环
语法: 条件表达式在循环顶进行部进行判断
while(condition){
action # 循环体
}
- do/while 循环
语法: 循环体至少被执行一次,在代码块结尾处进行判断
do {
action
} while(condition)
- for 循环
语法格式:等同于C语言的for循环
for(initial assignment;comparsion;increment ){
coode block
}
eg.
for( i = 1; i < 4; i++ ){
print "iteration",i
}
- break 和 continue
break、continue 可用于影响程序的控制流。
break 退出当前循环,不再继续执行循环体
continue 终止当前循环,从循环的顶部提前进入新的循环
注: continue 在while 和 for 循环不同之处在于,在for循环主体中使用时,continue将使循环控制变量自动增加!