三剑客之Awk高级应用(条件判断、循环)

Awk高级应用

1、IF 条件判断

  • 判断 boot 分区可用容量小于 20MB 时报警,否则显示 OK
[root@test ~]# df | grep "boot" | awk ' {if ($4<20000)  print "Alart" ; else print "OK"}'
OK
[root@test ~]# 

2、 While 循环

  • 指定范围内执行动作
##语法一
[root@test ~]# awk 'i=1 {} BEGIN {while (i<3) {++i;print i}}' test.txt 
1
2
3
[root@test ~]#
##语法二
[root@test ~]# awk 'BEGIN {do {++i;print i} while (i<3)}' test.txt 
1
2
3
[root@test ~]#

3、For 循环

  • for (变量;条件;计数器)
[root@test ~]# awk 'BEGIN {for (i=1;i<3;i++) print i}' test.txt
1
2
[root@test ~]# awk 'BEGIN {for (i=3;i>1;i--) print i}' test.txt
3
2
[root@test ~]# 

上述 While 和 For 循环语句使用的 awk 均使用 BEGIN 模式,即在未读取文档内容前就会将 BEGIN 代码执行完毕,所以输入文档可以是任意文档。

4、Break 与 Continue

  • Break 跳出循环
  • Continue 终止当前循环

猜你喜欢

转载自blog.csdn.net/sunny_future/article/details/80287236