开发手册 欢迎您!
软件开发者资料库

AWK - 循环

AWK循环 - 学习AWK编程以及如何开发环境,概述,工作流,基本语法,基本示例,内置变量,运算符,正则表达式,数组,控制流,循环,内置函数,用户定义函数,输出重定向,漂亮的印刷。

本章以适当的例子解释AWK的循环.循环用于以重复方式执行一组动作.只要循环条件为真,循环执行就会继续.

For循环

for 循环的语法是 :

语法

for (initialization; condition; increment/decrement)   action

最初, for 语句执行初始化操作,然后检查条件.如果条件为真,则执行操作,然后执行递增或递减操作.只要条件为真,循环执行就会继续.例如,以下示例使用进行循环和减号打印1到5;

示例

[jerry]$ awk 'BEGIN { for (i = 1; i <= 5; ++i) print i }'

执行此代码时,您将得到以下结果 :

输出

12345

While Loop

while 循环继续执行操作,直到特定逻辑条件的计算结果为true.这是while 循环的语法,:

语法

while (condition)   action

AWK首先检查条件;如果条件为真,则执行操作.只要循环条件的计算结果为true,就会重复此过程.例如,以下示例使用打印1到5,而循环 :

示例

[jerry]$ awk 'BEGIN {i = 1; while (i < 6) { print i; ++i } }'

在执行此代码时,您会得到以下结果 :

输出

12345

Do-While循环

do-while 循环类似于while循环,除了测试条件在循环结束.以下是 do-while 循环和减号的语法;

语法

do   actionwhile (condition)

do-while 循环中,操作语句即使条件语句的计算结果为false,也至少执行一次.例如,以下示例使用 do-while 循环和减号打印1到5个数字;

示例

[jerry]$ awk 'BEGIN {i = 1; do { print i; ++i } while (i < 6) }'

在执行此代码时,您得到以下结果 :

输出

12345

中断语句

顾名思义,它用于结束循环执行.下面是一个例子,当总和大于50时结束循环.

示例

[jerry]$ awk 'BEGIN {   sum = 0; for (i = 0; i < 20; ++i) {       sum += i; if (sum > 50) break; else print "Sum =", sum    } }'

执行此代码后,您将得到以下结果 :

输出

Sum = 0Sum = 1Sum = 3Sum = 6Sum = 10Sum = 15Sum = 21Sum = 28Sum = 36Sum = 45

继续语句

在循环内使用 continue 语句跳转到下一次迭代循环.当您希望跳过循环内部某些数据的处理时,它非常有用.例如,以下示例使用 continue 语句打印1到20之间的偶数.

示例

[jerry]$ awk 'BEGIN {   for (i = 1; i <= 20; ++i) {      if (i % 2 == 0) print i ; else continue   } }'

执行此代码时,您会得到以下结果 :

输出

2468101214161820

退出声明

它用于停止脚本的执行.它接受一个整数作为参数,它是AWK进程的退出状态代码.如果未提供参数,退出将返回状态零.下面是一个例子,当总和大于50时停止执行.

示例

[jerry]$ awk 'BEGIN {   sum = 0; for (i = 0; i < 20; ++i) {      sum += i; if (sum > 50) exit(10); else print "Sum =", sum    } }'

输出

开执行此代码,您将得到以下结果 :

Sum = 0Sum = 1Sum = 3Sum = 6Sum = 10Sum = 15Sum = 21Sum = 28Sum = 36Sum = 45

让我们检查一下脚本的返回状态.

示例

[jerry]$ echo $?

在执行此代码时,您会得到以下结果 :

输出

10