awk

Do-While Loop

Do-While 循环

awk while循环是一个入口控制循环。在入口处为条件检查。do-while循环是一个出口控制循环;条件检查在出口处。do-while循环至少被执行一次。它重复执行,只要条件是真,它一直重复

语法:

do
action
while(condition)

在下面的例子中,打印语句会被执行一次,因为我们确保条件将会是false。如果这是一个while语句,使用相同的初始化和条件。actions将不会被执行在整个过程。

$ awk 'BEGIN{count=1; do print "This gets printed at least once"; while(count !=1)}'
This gets printed at least once

下面的awk程序打印items-sold.txt文件每个项目的sold数量的总数。这个程序输出与while.awk程序相似。但这是用的do-while。

$ cat dowhile.awk
{
i=2; total=0;
do
    {
        total=total+$i;
        i++;
    }
while (i <= NF)
    print "Item", $1, ":", total, "quantities sold";
}

$ awk -f dowhile.awk items-sold.txt
Item 101 : 47 quantities sold
Item 102 : 10 quantities sold
Item 103 : 65 quantities sold
Item 104 : 20 quantities sold
Item 105 : 42 quantities sold