在 awk 编程中有各种各样的流程控制语句,其中包括:
-
if-else 语句:
- 简单的 if 判断语句:
if (表达式) { 语句1 } else { 语句2 }
- 多分支语句:
if (表达式) { 语句1 } else if (表达式) { 语句2 } else { 语句3 }
示例:
awk 'BEGIN { test = 100; if (test >= 90) { print "very very good"; } else if (test > 80 && test < 90) { print "very good"; } else if (test > 60) { print "good"; } else { print "no pass"; } }'
- 简单的 if 判断语句:
-
while 循环语句:
while (表达式) { 语句 }
示例:
awk 'BEGIN { test = 100; total = 0; while (i <= test) { total += i; i++; } print total; }'
-
for 循环语句:
- 格式1:
for (变量 in 数组) { 语句 }
- 格式2:
for (变量; 条件; 表达式) { 语句 }
示例:
格式1:awk 'BEGIN { for (k in ENVIRON) { print k "=" ENVIRON[k]; } }'
格式2:
awk 'BEGIN { total = 0; for (i = 0; i <= 100; i++) { total += i; } print total; }'
- 格式1:
-
do-while 循环语句:
do { 语句 } while (条件)
示例:
awk 'BEGIN { total = 0; i = 0; do { total += i; i++; } while (i <= 100); print total; }'
-
其他关键字:
- break:中断当前正在执行的循环并跳到循环外执行下一条语句。
- continue:使程序循环移动到下一个迭代。
- next:导致读入下一个输入行,并返回到脚本的顶部。
- exit:使主输入循环退出并将控制转移到 END,如果 END 存在的话。如果没有定义 END 规则,或在 END 中应用 exit 语句,则终止脚本的执行。
这些流程控制语句使得 awk 在处理数据时非常强大且高效。
源: 与必应的对话, 2024/4/7
(1) awk实战2-流程控制语句总结_awk中的流程控制-CSDN博客. https://blog.csdn.net/xinquanv1/article/details/99537105.
(2) awk 系列:在 awk 中如何使用流程控制语句 - Linux 中国. https://linux.cn/article-7723-1.html.
(3) 快收藏! 30 分钟包你学会 AWK - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/97583769.