shell脚本,awk如何处理文件中上下关联的两行。
2024-10-20 15:47:22
文件d.txt如下内容
ggg 1
portals: 192.168.5.41:3260
werew 2
portals: 192.168.5.43:3260
如何把文件d.txt内容变为如下内容
ggg 192.168.5.41:3260
werew 192.168.5.43:3260
解题思路:
[root@localhost study]# awk '/port/{print a" "$2}{a=$1}' d.txt
ggg 192.168.5.41:3260
werew 192.168.5.43:3260
'/port/{print a" "$2}{a=$1}'
处理第一行的时候,以port开头吗?很明显,不以port开头,所以那个pattern不匹配,action不执行。但执行了后面的a=$1
处理第二行的时候,以port开头,打印出来a和本行$2,再处理就是个循环过程。
详细步骤:
由于第一行没有匹配以port开头的,所以print a" "$2不执行,执行a=$1. a=ggg
由于第二行有匹配以port开头的,所以print a" "$2行执行,由于a=ggg,所以输出 ggg 192.168.5.41:3260
由于第三行没有匹配以port开头的,所以print a" "$2不执行,执行a=$1. a=werew
由于第四行有匹配以port开头的,所以print a" "$2行执行,由于a=werew,所以输出 werew 192.168.5.43:3260
由此得到结果:
ggg 192.168.5.41:3260
werew 192.168.5.43:3260
最新文章
- Datazen自定义地图
- web前端之html5开发中常用的开发工具
- Spring Boot 实践折腾记(三):三板斧,Spring Boot下使用Mybatis
- 解决Cannot change version of project facet Dynamic Web M
- C# 超时类
- 64.OV7725初始化配置
- React Native学习-调取摄像头第三方组件:react-native-image-picker
- VB操作CAD
- js中点击事件方法三种方式的区别
- VS2005 检测内存泄漏的方法(转载)
- webserver/CGI
- showModalDialog(转)
- django 学习笔记(一)搭建基础环境
- CentOS 7.0 64位 安装TFTP
- Js里面的数组去重方法
- ASP.NET WebForm 通过 PagedDataSource 实现 Repeater 的分页
- javax顶层接口分析
- laravel启动过程简单解析
- js 获取当前日期或者前、后N天yyyy-MM-dd的方法
- 数据重组:对一堆相似字典进行分类统计(shidebin)