📜  AWK-循环(1)

📅  最后修改于: 2023-12-03 14:59:26.111000             🧑  作者: Mango

AWK 循环

AWK 是一种文本处理工具,通过读取和处理文本文件可以完成大量的任务。循环是 AWK 中非常重要的一个概念,在处理大量文本信息时十分实用。

AWK 循环语句

在 AWK 中,有两种常用的循环语句:forwhile

for 循环

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 循环

while 循环与 for 循环类似,其语法如下:

while (条件语句) {
    循环操作
}

while 循环的执行与 for 循环基本相同,它不同的是,它没有赋值和更新语句。

下面示例展示了如何使用 while 循环从文件中读取数据并处理:

BEGIN {
    FS=","         # 设置字段分隔符
    while (getline < "data.txt") {
        sum += $3  # 将第三列数据相加
    }
    close("data.txt")
    print "Total sales: $", sum
}
控制循环

在 AWK 中,还有两个关键字可以用于控制循环,它们是 breakcontinue

  • 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 循环结构和控制循环的关键字。