shell脚本,awk如何处理文件中上下关联的两行。
文件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
shell脚本,awk如何处理文件中上下关联的两行。的更多相关文章
- 通过Shell脚本读取properties文件中的参数时遇到\r换行符的问题
今天在编写微服务程序启动脚本的时候,遇到一个比较奇葩的问题,下面给出具体描述: 目标:通过读取maven插件打包时生成的pom.properties文件,获取里面的应用名称和应用版本号,然后拼接得到s ...
- shell 脚本sed替换文件中某个字符串
有些大文件,特别的大.有几百兆,甚至更大. 用文本编辑器打开十分的费劲,电脑都卡死了. 想替换其中的字符串,很麻烦. 这个时候有了shell,简直强大到爆炸! # du -h user.sql 304 ...
- shell 脚本,提取文件中的内容
使用awk.cut.sed.if.while 等 awk.cut.sed还是很重要的 这是后来修改的,可以完成 #!/bin/bash #conver formatFILE=mobile_dpi.ru ...
- shell脚本,如果文件中的第一列有相同的,就把相同的那些行的其他字段相加
命令:awk '{a[$1]+=$2}{b[$1]+=$3}END{for(i in a){print i,a[i],b[i]}}'
- Shell脚本循环读取文件中的每一行
1.使用for循环 for line in `cat filename` do echo $line done 2.使用for循环 for line in $(cat filename) do ech ...
- Mac下通过shell脚本修改properties文件
通过shell脚本替换属性文件中的某行记录 假设有如下属性文件 demo.properties user.name=test user.password=123456 ................ ...
- SQL Server 中执行Shell脚本计算本地文件的内容大小
SQL Server 数据库中除了能执行基本的SQL语句外,也可以执行Shell脚本.默认安装后,SQL中的Shell脚本的功能是关闭的,需要手动打开, 执行以下脚本即可打开该功能. -- 允许配置高 ...
- linux下shell脚本执行jar文件
最近在搞一个shell脚本启动jar文件个关闭jar文件的东东.搞得我都蛋疼了.今天晚上终于弄好了 话说,小弟的linux只是刚入门,经过各方查资料终于搞定了.话不多说,下面开始上小弟写的shell脚 ...
- SHELL脚本编程-普通数组(列表)和关联数组(字典)
SHELL脚本编程-普通数组(列表)和关联数组(字典) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组相关概述 变量: 存储单个元素的内存空间 数组: 存储多个元素的连续的 ...
随机推荐
- VC.NET 需要注意的一些问题
String^ abc = gcnew String(); String^ abc = nullptr override .net 类方法: void Reset() override {....} ...
- css定位-position
前言 定位的目的就是把元素摆放到指定的位置. 定位上下文:定位元素的大小,位置都是相对于定位上下文的. position属性值有5个值 static:所有有元素定位默认的初始值都是static.就是不 ...
- Pycharm2019.1.2永久激活
五月八日Pycharm更新至2019.1.2,小伙们是否也及时更新了呢?值得注意的是以前的激活方式已不适用于本次更新,这里分享最新的激活方法,有需要的同学请扫码关注我的公众号获取 重申:如果经济条件允 ...
- ZK的选举算法
一.前言 前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举. 二.Leader选举 2.1 Leader选举概 ...
- Zju1610 Count the Colors(lazy标记详解)
Description 画一些颜色段在一行上,一些较早的颜色就会被后来的颜色覆盖了. 你的任务就是要数出你随后能看到的不同颜色的段的数目. Input 每组测试数据第一行只有一个整数n, 1 < ...
- Java并发编程面试题1
package com.mozq.thread.producer2; /* * 面试题2:以下代码是否存在错误 class ThreadTest implements Runnable{ public ...
- Git,SVN的优缺点及适合的范围,开源项目?公司项目?
Git,SVN的优缺点及适合的范围,开源项目?公司项目? 使用git不久,粗浅理解: 1)适用对象不同.Git适用于参与开源项目的开发者.他们由于水平高,更在乎的是效率而不是易用性.Svn则不同,它适 ...
- 551 Student Attendance Record I 学生出勤纪录 I
给定一个字符串来代表一个学生的出勤纪录,这个纪录仅包含以下三个字符: 'A' : Absent,缺勤 'L' : Late,迟到 'P' : Present,到场如果一个学生的出勤纪 ...
- 081 Search in Rotated Sorted Array II 搜索旋转排序数组 ||
这是 “搜索旋转排序数组”问题的跟进:如果数组元素允许重复,怎么办?这会影响到程序的时间复杂度吗?会有怎样的影响,为什么?假设按照升序排序的数组在预先未知的某个关键点上旋转.(例如, 0 1 2 4 ...
- P1042 乒乓球
题目背景 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及.其中11分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役.华华就是其中一位,他退役 ...