📜  AWK-控制流(1)

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

AWK-控制流

AWK是一种强大的文本处理工具,它的控制流功能可以让用户更好地处理和转换文本数据。在AWK中,控制流指决定程序执行哪些语句的过程。本文将简要介绍AWK中的控制流。

if语句

if语句是表达式为真时执行某些操作的一种特殊形式。以下是一个示例:

#!/usr/bin/awk -f

{
    if ($1 > 10) {
        print "Greater than 10"
    } else if ($1 > 5) {
        print "Greater than 5"
    } else {
        print "Less than or equal to 5"
    }
}

输出:

$ echo "3" | awk -f test.awk
Less than or equal to 5

$ echo "7" | awk -f test.awk
Greater than 5

$ echo "15" | awk -f test.awk
Greater than 10
for循环

for循环是一种常用的循环控制结构,用于在指定次数内多次执行一个代码块。下面是一个简单的for循环示例:

#!/usr/bin/awk -f

BEGIN {
    for (i = 1; i <= 10; i++) {
        print "Line " i
    }
}

输出:

$ awk -f test.awk
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
while循环

while循环可以用于重复执行一些代码,直到指定的条件不再满足为止。以下是一个示例:

#!/usr/bin/awk -f

{
    x = 1
    while (x <= $1) {
        print x++,
    }
    print ""
}

输出:

$ echo "3" | awk -f test.awk
1 2 3

$ echo "5" | awk -f test.awk
1 2 3 4 5
do-while循环

do-while循环是while循环的变体,不同之处在于它在循环代码块之后执行一次条件检查。以下是一个示例:

#!/usr/bin/awk -f

{
    x = 1
    do {
        print x++,
    } while (x <= $1)
    print ""
}

输出:

$ echo "3" | awk -f test.awk
1 2 3

$ echo "5" | awk -f test.awk
1 2 3 4 5
break和continue

在循环中,break和continue可以用于更细粒度地控制程序的流程。break会中断循环并跳出循环。continue会在当前迭代中跳过代码,并开始下一轮循环。以下是一个示例:

#!/usr/bin/awk -f

{
    for (i = 1; i <= $1; i++) {
        if (i == 3) {
            break;
        } else if (i == 2) {
            continue;
        }
        print i
    }
}

输出:

$ echo "5" | awk -f test.awk
1
4

以上就是AWK中的控制流控制语句的介绍。通过掌握它们,你将更好地处理和转换文本数据。