📅  最后修改于: 2023-12-03 14:59:26.111000             🧑  作者: Mango
AWK 是一种文本处理工具,通过读取和处理文本文件可以完成大量的任务。循环是 AWK 中非常重要的一个概念,在处理大量文本信息时十分实用。
在 AWK 中,有两种常用的循环语句:for
和 while
。
for
循环结构的语法如下:
for (赋值语句; 条件语句; 更新语句) {
循环操作
}
其中,赋值语句只在循环开始时执行一次,条件语句在每次循环前都会被执行,更新语句在每次循环结束后都会被执行。
下面是一个简单的示例,该示例使用 for
循环将 1~10 的数字相加:
BEGIN {
sum = 0
for (i = 1; i <= 10; i++) {
sum += i
}
print "1+2+...+10 = ", sum
}
输出结果为:
1+2+...+10 = 55
while
循环与 for
循环类似,其语法如下:
while (条件语句) {
循环操作
}
while
循环的执行与 for
循环基本相同,它不同的是,它没有赋值和更新语句。
下面示例展示了如何使用 while
循环从文件中读取数据并处理:
BEGIN {
FS="," # 设置字段分隔符
while (getline < "data.txt") {
sum += $3 # 将第三列数据相加
}
close("data.txt")
print "Total sales: $", sum
}
在 AWK 中,还有两个关键字可以用于控制循环,它们是 break
和 continue
。
break
关键字用于强制退出循环。continue
关键字用于跳过某次循环并开始下一次循环。下面示例展示了如何使用 break
关键字终止循环:
BEGIN {
for (i = 1; i <= 10; i++) {
if (i == 6) {
break # 终止循环
}
print i
}
}
输出结果为:
1
2
3
4
5
下面示例展示了如何使用 continue
关键字跳过某次循环:
BEGIN {
for (i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue # 跳过偶数
}
print i
}
}
输出结果为:
1
3
5
7
9
AWK 循环是处理大量文本信息时非常有用的工具,能够实现大量的任务。开发人员必须掌握 AWK 循环结构和控制循环的关键字。