【shell】awk的next用法
生活随笔
收集整理的這篇文章主要介紹了
【shell】awk的next用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
awk的next相當于循環中continue的作用,next后面的語句將不再執行。
例如,下面的例子中,包含數字3的那行的print語句沒有被執行。
[root]$ seq 5 | awk '{print $0}' 1 2 3 4 5 [root]$ seq 5 | awk '/3/ {next} {print $0}' 1 2 4 5?
通過next,可以省略一些場景中awk里面的if語句。
例如:
存在文本:
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
需要通過awk將輸出格式變成:
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
?
下面是使用if和next的awk解法:
?
[root]$ cat combind.txt | awk '{if (/^web/) {title=$0} else {print title,'\t', $0}}' 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[root]$ cat combind.txt | awk '/^web/ {title=$0;next;}{print title,'\t', $0}' 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?
轉載于:https://www.cnblogs.com/seyjs/p/5217438.html
總結
以上是生活随笔為你收集整理的【shell】awk的next用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 打通两台机器的ssh功能
- 下一篇: 【opencv】图像细化