在 awk 中使用循环
awk 是一种用于文本处理的强大工具,它支持多种编程语言的特性,包括条件语句、循环语句和函数等,在本文中,我们将重点介绍如何在 awk 中使用循环。
1、for 循环
在 awk 中,for 循环的语法如下:
for (variable in array) { 执行操作 }
variable
是循环变量,array
是要遍历的数组,在循环体中,我们可以对数组中的每个元素执行操作。
我们有一个文件 data.txt
,内容如下:
apple,10 banana,20 orange,30
我们想要计算每种水果的总数量,可以使用以下 awk 命令:
awk '{fruits[$1]+=$2} END {for (fruit in fruits) print fruit, fruits[fruit]}' data.txt
在这个例子中,我们首先使用 $1
和 $2
分别表示水果名称和数量,然后使用 fruits[$1]+=$2
将每种水果的数量累加到数组 fruits
中,我们使用 for 循环遍历数组并打印结果。
2、while 循环
在 awk 中,while 循环的语法如下:
while (condition) { 执行操作 }
condition
是一个布尔表达式,当其值为真时,循环将继续执行,在循环体中,我们可以执行任意操作。
我们想要计算一个数字列表中所有数字的和,可以使用以下 awk 命令:
echo "1 2 3 4 5" | awk '{sum=0; while ($1 != "") {sum+=$1; $1="";}} END {print sum}'
在这个例子中,我们首先使用 echo
命令生成一个数字列表,我们使用 while 循环遍历列表中的每个数字,并将其累加到变量 sum
中,我们打印结果。
3、do-while 循环
在 awk 中,do-while 循环的语法如下:
do { 执行操作 } while (condition)
与 while 循环类似,do-while 循环也会在条件为真时继续执行,do-while 循环至少会执行一次循环体。
在实际应用中,我们很少使用 do-while 循环,因为 while 循环已经足够满足需求,了解 do-while 循环的语法对于学习其他编程语言也是有帮助的。
4、break 和 continue 语句
在循环中,我们可以使用 break 和 continue 语句来控制循环的执行,break 语句用于跳出当前循环,而 continue 语句用于跳过当前迭代并进入下一次迭代。
我们想要找出一个数字列表中的第一个负数,可以使用以下 awk 命令:
echo "1 -2 3 -4 5" | awk '{if ($1 < 0) {print $1; break}}'
在这个例子中,我们使用 if 语句判断数字是否为负数,如果找到第一个负数,我们打印它并使用 break 语句跳出循环,否则,我们继续查找下一个数字。
5、exit 语句
在循环中,我们还可以使用 exit 语句来提前结束整个程序,exit 语句的语法如下:
exit [status]
status
是一个可选参数,表示程序的退出状态,默认情况下,退出状态为非零值表示程序异常终止,我们可以使用 exit status
来设置退出状态。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/334139.html