📅  最后修改于: 2023-12-03 14:39:25.065000             🧑  作者: Mango
AWK是一种强大的文本处理工具,它的控制流功能可以让用户更好地处理和转换文本数据。在AWK中,控制流指决定程序执行哪些语句的过程。本文将简要介绍AWK中的控制流。
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循环示例:
#!/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循环可以用于重复执行一些代码,直到指定的条件不再满足为止。以下是一个示例:
#!/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循环是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会在当前迭代中跳过代码,并开始下一轮循环。以下是一个示例:
#!/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中的控制流控制语句的介绍。通过掌握它们,你将更好地处理和转换文本数据。