awk控制语句

2 篇文章 0 订阅
1 if 语句的功能是根据用户指定的条件来决定执行程序的哪个分支
if (expression)
{
statement1
statement2
}
else
{
statement3
statement4
}
[root@localhost ~] # awk -F: '{if ($1=="root") printf "%-10s %-15s\n", $1,
"Admin"; else printf "%-10s %-15s\n",$1, "Common User"}' /etc/passwd | head -
n 3
[root@localhost ~] # awk '{if ($1>$2) print NR,"max =",$1;else print NR,"max
=",$2}' file
2 while 语句是另外一种常用的循环结构
写法 1
while (expression)
{
statement1
statement2
……
}
写法 2
do {
statement1
statement2
...
}while (expression)
当表达式 expression 的值为真时,执行循环体中的 statement1 以及 statement2 等语句。如果循环体中
只包含一条语句,则可以省略大括号。
[root@localhost ~] # awk 'BEGIN{while(i<=100) {sum+=i;i++}print "sum=",sum}'
sum = 5050
3 for 语句
for (expression1; expression2; expression3)
{
statement1
statement2
...
}
for 循环语句通常用在循环次数已知的场合中,其语法如下:
在上面的语法中,表达式 expression1 通常用来初始化循环变量,表达式 expression2 通常用来指定循环
执行的条件,表达式 expression3 通常用来改变循环变量的值。当表达式 expression2 的值为真时,执行
循环体中的语句。
[root@localhost ~] # awk 'BEGIN {for(i=1;i<=100;i++){sum+=i;}print
"sum=",sum}'
sum = 5050
for 循环还可以用来遍历数组元素:
语法: for ( 变量 in 数组 ){ 语句 }
# 统计用户的 shell
[root@localhost ~] # awk -F: '$NF!~/^$/{BASH[$NF]++}END{for(A in BASH){printf
"%15s:%i\n",A,BASH[A]}}' /etc/passwd
4 break 语句
用户可以通过使用 break 语句在适当的时机退出 for 以及 while 等循环结构,而不必等到循环结构自己退
出。
5 continue 语句
continue 语句的主要功能是跳过循环结构中该语句后面的尚未执行的语句。 break 语句与 continue 语句
的功能有着明显的区别,前者是直接退出循环结构,而后者是跳过循环体中尚未执行的语句,重新执行
下一次循环。
6 next 语句
next 语句的功能与 continue 语句非常相似,但是 next 语句并不是用在循环结构中,而是用在整个 awk
序中。当 awk 执行程序时,如果遇到 next 语句,则提前结束对本行文本的处理, awk 会继续读取下一行
数据,并且从第一个模式及其操作开始执行。
例如,下面的命令将显示其 ID 号为奇数的用户:
[root@localhost ~] # awk -F: '{if($3%2==0) next;print $1,$3}' /etc/passwd
|head -n 3
bin 1
adm 3
sync 5
7 exit 语句
exit 语句的功能是终止 awk 程序的执行。
  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值