在Awk中使用流控制语句
- if-else语句
- for语句
- while语句
- do-while语句
- break语句
- continue语句
- 下一条语句
- nextfile语句
- 退出语句
if-else
,
for
,
while
和
do while
陈述。 请记住,我们已经通过走进
如何在第6部分使用下面的语句这一点 。
1. if-else语句
所述的预期语法if statement
类似于
if语句壳的:
if (condition1) { actions1 } else { actions2 }另外,在上述的语法,
condition1
和
condition2
都awk的表情,并
actions1
和
actions2
是各自的条件成立时执行awk的命令。 当
条件1为满意,这意味着它是真的,那么
actions1被执行
,if语句退出,否则
actions2被执行。
if语句也可以扩展到
if-else_if-else
声明如下:
if (condition1){ actions1 } else if (conditions2){ actions2 } else{ actions3 }对于上面的表格中,如果 条件1为真,则 actions1被执行 ,if语句退出,否则, 条件2被评估,如果它是真的,那么 actions2被执行 ,if语句退出。 然而,当 条件2是假的话 ,actions3被执行 ,if语句退出。 这里是在使用 if语句的点的情况下,我们有 用户和他们的 年龄存储在文件中 ,users.txt的列表。 我们要打印指示用户名称的语句和用户的年龄是否小于或大于 25岁。
aaronkilik@youcl ~ $ cat users.txt Sarah L 35 F Aaron Kili 40 M John Doo 20 M Kili Seth 49 M我们可以写一个简短的shell脚本来执行我们上面的工作,这里是脚本的内容:
#!/bin/bash awk ' { if ( $3 <= 25 ){ print "User",$1,$2,"is less than 25 years old." ; } else { print "User",$1,$2,"is more than 25 years old" ; } }' ~/users.txt然后保存文件并退出,使脚本可执行并运行如下:
$ chmod +x test.sh $ ./test.sh
示例输出
User Sarah L is more than 25 years old User Aaron Kili is more than 25 years old User John Doo is less than 25 years old. User Kili Seth is more than 25 years old
for语句
如果你想执行一些awk的一个循环命令,那么 for语句为您提供一个合适的方式来做到这一点,与下面的语法: 这里,该方法通过使用计数器来控制循环执行来简单地定义,首先需要初始化计数器,然后针对测试条件运行它,如果为真,则执行动作,最后增加计数器。当计数器不满足条件时,循环终止。for ( counter-initialization; test-condition; counter-increment ){ actions }下面的awk命令显示了如何 for语句作品,在这里我们要打印的数字 0-10:
$ awk 'BEGIN{ for(counter=0;counter<=10;counter++){ print counter} }'
示例输出
0 1 2 3 4 5 6 7 8 9 10
while语句
while语句的常规语法如下:while ( condition ) { actions }条件是Awk表达式,并且操作是当条件为真时执行的Awk命令行。 下面是一个脚本来说明使用 while语句的打印数 0-10:
#!/bin/bash awk ' BEGIN{ counter=0 ; while(counter<=10){ print counter; counter+=1 ; } }保存文件并使脚本可执行,然后运行它:
$ chmod +x test.sh $ ./test.sh
示例输出
0 1 2 3 4 5 6 7 8 9 10
do while语句
它是 while语句的变形例以上,具有以下潜在的语法:do { actions } while (condition)略有区别的是,在 做的同时 ,评估条件前,awk的命令执行。 使用下 而上述 说法 ,我们可以 同时通过在 test.sh脚本改变awk命令如下说明使用 做的非常的例子:
#!/bin/bash awk ' BEGIN{ counter=0 ; do{ print counter; counter+=1 ; } while (counter<=10) } '修改脚本后,保存文件并退出。然后使脚本可执行并执行如下:
$ chmod +x test.sh $ ./test.sh
示例输出
0 1 2 3 4 5 6 7 8 9 10