【shell】awk的next用法
2024-08-27 13:42:15
awk的next相当于循环中continue的作用,next后面的语句将不再执行。
例如,下面的例子中,包含数字3的那行的print语句没有被执行。
[root]$ seq | awk '{print $0}' [root]$ seq | awk '/3/ {next} {print $0}'
通过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
最新文章
- NetBeans建立跳过测试构建的快捷方式
- 开源项目IPProxys的使用
- (转)RSA算法原理(二)
- [SQL Server]如何快速查找使用了某个字段的所有存储过程
- jquery插件之拖拽改变元素大小
- 将集成spring的项目从tomcat上移植到weblogic下存在的问题
- [iOS基础控件 - 6.9.3] QQ好友列表Demo TableView
- Response.Redirect:无法在发送 HTTP 标头之后进行重定向
- 【OpenCV十六新手教程】OpenCV角检测Harris角点检测
- python进程池剖析(三)
- IE无法获得cookie,ie不支持cookie的解决办法,火狐支持
- Vue.js的坑
- 【BZOJ5300】[CQOI2018]九连环 (高精度,FFT)
- 安装bazel(syntaxnet依赖工具)
- Linux安装的分区问题
- ubuntu14.04 解析不了域名—ubuntu的DNS配置
- 20165304 实验二 Java面向对象程序设计
- Go语言开发的第一步,安装开发环境编写第一个Go程序
- 使用ASP.NET AJAX 从脚本中调用Web 服务的应用方法
- python2在安装pywin32后出现ImportError: DLL load failed 解决方法