linux中awk命令中的next的用法
阿新 • • 發佈:2022-04-15
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