linux中awk命令中的next的用法

 

1、linux中awk中next命令相当于循环语句中的continue

复制代码
[root@centos7 test2]# seq 6
1
2
3
4
5
6
[root@centos7 test2]# seq 6 | awk '$0 ~ /5/ {next}; {print $0}'  ## 当前行匹配5的时候,跳过本次循环
1
2
3
4
6
复制代码

 

2、测试数据

复制代码
[root@centos7 test2]# ls
a.txt
[root@centos7 test2]# cat a.txt
web01[192.168.2.100]
httpd ok
tomcat ok
sendmail ok
web02[192.168.2.101]
httpd ok
postfix ok
web03[192.168.2.102]
mysqld ok
httpd ok
复制代码

 

if实现数据折叠:

复制代码
[root@centos7 test2]# ls
a.txt
[root@centos7 test2]# cat a.txt
web01[192.168.2.100]
httpd ok
tomcat ok
sendmail ok
web02[192.168.2.101]
httpd ok
postfix ok
web03[192.168.2.102]
mysqld ok
httpd ok
[root@centos7 test2]# awk '{if($0 ~ /^web/){title = $0} else {print title, $0}}' a.txt
web01[192.168.2.100] httpd ok
web01[192.168.2.100] tomcat ok
web01[192.168.2.100] sendmail ok
web02[192.168.2.101] httpd ok
web02[192.168.2.101] postfix ok
web03[192.168.2.102] mysqld ok
web03[192.168.2.102] httpd ok                  ## next的作用是跳过本次迭代
[root@centos7 test2]# awk '{if($0 ~ /^web/) {title = $0; next}{print title, $0}}' a.txt
web01[192.168.2.100] httpd ok
web01[192.168.2.100] tomcat ok
web01[192.168.2.100] sendmail ok
web02[192.168.2.101] httpd ok
web02[192.168.2.101] postfix ok
web03[192.168.2.102] mysqld ok
web03[192.168.2.102] httpd ok
复制代码

 

posted @   小鲨鱼2018  阅读(400)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-04-15 R语言中sample函数
2021-04-15 linux系统awk命令求一行值的和、平均值、最大值和最小值
2021-04-15 linux系统中awk命令求一列值的最大值、最小值、和及平均值
2021-04-15 R语言中找交集、并集、找不同、判断是否相同
2021-04-15 R语言中unique函数
2021-04-15 linux系统中将一列数据转换为指定的行
2021-04-15 linux系统中实现文本转置
点击右上角即可分享
微信分享提示