千家信息网

awk中的使用循环是怎么样的

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,awk中的使用循环是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。导读awk 脚本有三个主要部分:BEGIN 和 END 函数(
千家信息网最后更新 2026年11月03日awk中的使用循环是怎么样的

awk中的使用循环是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

导读awk 脚本有三个主要部分:BEGIN 和 END 函数(都可选),用户自己写的每次要执行的函数。某种程度上,awk 的主体部分就是一个循环,因为函数中的 命令对每一条记录都会执行一次。然而,有时你希望对于一条记录执行多次 命令,那么你就需要用到循环。

来学习一下多次执行同一条命令的不同类型的循环。

awk 脚本有三个主要部分:BEGIN 和 END 函数(都可选),用户自己写的每次要执行的函数。某种程度上,awk 的主体部分就是一个循环,因为函数中的命令对每一条记录都会执行一次。然而,有时你希望对于一条记录执行多次命令,那么你就需要用到循环。

有多种类型的循环,分别适合不同的场景。

while 循环

一个 while 循环检测一个表达式,如果表达式为 true 就执行命令。当表达式变为 false 时,循环中断。

#!/bin/awk -f BEGIN {        # Loop through 1 to 10     i=1;    while (i <= 10) {        print i, " to the second power is ", i*i;        i = i+1;    }exit;}

在这个简单实例中,awk 打印了放在变量 i 中的整数值的平方。while (i <= 10) 语句告诉 awk 仅在 i 的值小于或等于 10 时才执行循环。在循环最后一次执行时(i 的值是 10),循环终止。 [yiji]do-while 循环[/yiji] do-while 循环执行在关键字 do 之后的命令。在每次循环结束时检测一个测试表达式来决定是否终止循环。仅在测试表达式返回 true 时才会重复执行命令(即还没有到终止循环的条件)。如果测试表达式返回 false,因为到了终止循环的条件所以循环被终止。

#!/usr/bin/awk -fBEGIN {         i=2;        do {                print i, " to the second power is ", i*i;                i = i + 1        }        while (i < 10) exit;}

for 循环

awk 中有两种 for 循环。

一种 for 循环初始化一个变量,检测一个测试表达式,执行变量递增,当表达式的结果为 true 时循环就会一直执行。

#!/bin/awk -f BEGIN {    for (i=1; i <= 10; i++) {        print i, " to the second power is ", i*i;    }exit;}

另一种 for 循环设置一个有连续索引的数组变量,对每一个索引执行一个命令集。换句话说,它用一个数组"收集"每一条命令执行后的结果。

本例实现了一个简易版的 Unix 命令 uniq。通过把一系列字符串作为键加到数组 a 中,当相同的键再次出现时就增加键值,可以得到某个字符串出现的次数(就像 uniq 的 --count 选项)。如果你打印该数组的所有键,将会得到出现过的所有字符串。

用演示文件 colours.txt(前一篇文章中的文件)来举例:

name       color  amountapple      red    4banana     yellow 6raspberry  red    99strawberry red    3grape      purple 10apple      green  8plum       purple 2kiwi       brown  4potato     brown  9pineapple  yellow 5

这是 awk 版的简易 uniq -c:

#! /usr/bin/awk -f NR != 1 {    a[$2]++}END {    for (key in a) {                print a[key] " " key    }}

示例数据文件的第三列是第一列列出的条目的计数。你可以用一个数组和 for 循环来按颜色统计第三列的条目。

#! /usr/bin/awk -f BEGIN {    FS=" ";    OFS="\t";    print("color\tsum");}NR != 1 {    a[$2]+=$3;}END {    for (b in a) {        print b, a[b]    }}

你可以看到,在处理文件之前也需要在 BEFORE 函数(仅仅执行一次)中打印一列表头。

循环

在任何编程语言中循环都是很重要的一部分,awk 也不例外。使用循环你可以控制 awk 脚本怎样去运行,它可以统计什么信息,还有它怎么去处理你的数据。

看完上述内容,你们掌握awk中的使用循环是怎么样的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

循环 命令 表达式 函数 数组 变量 文件 部分 测试 字符 字符串 脚本 检测 不同 三个 主体 内容 就是 数据 方法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司怎么样 互联网佳科技有限公司 中资互联网科技 科技服务与互联网 深圳互联网络科技有限公司 新浪科技互联网 撒么互联网科技公司 四川狮子座互联网科技 互联网科技英文翻译 镁科技互联网资讯平台 联恩商钥互联网科技有限公司 互联网汽车科技小镇 厦门比较好的科技互联网公司 互联网保险科技创业 保险科技服务互联网营销体系 广东工业互联网大赛深圳学泰科技 宇信科技在杭州互联网排第几 山东蛋芒互联网科技有限公司 瑞安市蟠桃会互联网科技有限公司 互联网科技企业文化 南京欣网互联网络科技 奇酷互联网络科技公司 互联网金融科技平台 广西互联网科技公司 互联网实体化科技化 深圳市运趣互联网科技有限公司 广州千川互联网科技有限公司 广州有谷有贝互联网科技有限公司 唯美互联网科技 美国五大互联网科技公司市值多少
0