sed标签
b label ,无条件跳转到标签label,如果label没有指定,跳转到命令的结尾
t label ,如果最后一次输入的最后一个 s/// 子命令执行成功,跳转到标签label,如果label没有指定,跳转到命令的结尾
cat file
AA
BC
AA
CB
CC
AA
sed ‘/^AA/s/$/ YES/t;s/$/ NO/‘ file
AA YES
BC NO
AA YES
CB NO
CC NO
AA YES
t是有条件跳转,在匹配AA之后执行成功了替换为YES,到t标签处发现没有设置标签,就跳到结尾处,不执行NO替换了;当不匹配AA也就不执行后面的替换YES,也不执行标签,只执行NO替换
(t标签触发的条件是,必须t标签前的s///命令执行成功,否则忽略t标签)
sed ‘/^AA/ba;s/$/ NO/;b;:a;s/$/ YES/‘ file
AA YES
BC NO
AA YES
CB NO
CC NO
AA YES
b是无条件跳转,当匹配AA之后触发b标签,跳转到:a处,然后执行标签后面的替换YES;当不匹配AA时不触发第一个b标签,执行替换NO语句,然后遇到第二个b标签,但没有设置标签,跳转到结尾处,跳过YES替换
(b标签触发条件是,无条件遇到就跳转)
cat file
114.113.144.2:
19ms
19ms
19ms
36ms
22ms
19ms
18ms
218.61.204.73:
0ms
0ms
0ms
0ms
0ms
0ms
0ms
221.194.139.147:
165ms
157ms
159ms
169ms
164ms
163ms
64ms
221.194.46.244:
32ms
31ms
58ms
141ms
119ms
31ms
31ms
123.129.243.246:
36ms
36ms
36ms
42ms
36ms
36ms
36ms
123.234.6.2:
40ms
40ms
40ms
40ms
40ms
40ms
40ms
125.211.197.172:
41ms
41ms
41ms
41ms
41ms
41ms
41ms
218.60.8.171:
6ms
6ms
6ms
6ms
6ms
6ms
6ms
sed ‘/:$/{:a;N;/\n.*ms/s/\n/ /;ta;P;D}‘ file
114.113.144.2: 19ms 19ms 19ms 36ms 22ms 19ms 18ms
218.61.204.73: 0ms 0ms 0ms 0ms 0ms 0ms 0ms
221.194.139.147: 165ms 157ms 159ms 169ms 164ms 163ms 64ms
221.194.46.244: 32ms 31ms 58ms 141ms 119ms 31ms 31ms
123.129.243.246: 36ms 36ms 36ms 42ms 36ms 36ms 36ms
123.234.6.2: 40ms 40ms 40ms 40ms 40ms 40ms 40ms
125.211.197.172: 41ms 41ms 41ms 41ms 41ms 41ms 41ms
218.60.8.171: 6ms 6ms 6ms 6ms 6ms 6ms 6ms
思路使用t标签,有条件跳转
匹配以:结尾的行,然后执行N命令读入下一行
此时模式空间内容为
114.113.114.2:\n19ms
假如匹配\n.*ms,就执行替换,将\n替换成空格
此时模式空间内容为
114.113.114.2: 19ms
上面替换执行成功后,满足条件执行t标签,跳到a出继续执行
直到读到218.61.204.73: 不满足匹配,也就不执行\n替换空格的命令了,执行后面的命令P;D
如此循环
sed标签的更多相关文章
- sed武功心法(info sed翻译+注解)
本文中的提到GNU扩展时,表示该功能是GNU为sed提供的(即GNU版本的sed才有该功能),一般此时都会说明:如果要写具有可移植性的脚本,应尽量避免在脚本中使用该选项. 本文中的正则表达式几乎和gr ...
- sed修炼系列(二):sed武功心法(info sed翻译+注解)
sed系列文章: sed修炼系列(一):花拳绣腿之入门篇sed修炼系列(二):武功心法(info sed翻译+注解)sed修炼系列(三):sed高级应用之实现窗口滑动技术sed修炼系列(四):sed中 ...
- Linux sed识别HTML标签
在做Linux作业,遇到一题用sed替换掉文件中的特殊字符,其中HTML标签就是一大堆特殊字符. 先来说说sed的替换使用“s/待替换的字符/将替换成的字符/”. 其后还可以跟g,即“s///g”,表 ...
- 基本shell编程【3】- 常用的工具awk\sed\sort\uniq\od
awk awk是个很好用的东西,大量使用在linux系统分析的结果展示处理上.并且可以使用管道, input | awk '' | output 1.首先要知道形式 awk 'command' fi ...
- Sed、Awk单行脚本快速参考
文本间隔: # 在每一行后面增加一空行 sed G awk '{printf("%s\n\n",$0)}' # 将原来的所有空行删除并在每一行后面增加一空行. # 这样在输出的文本 ...
- awk sed 总结
Awk总结笔记 介绍 90年代 new awk :nawk Linux 的是gawk 我们简化awk 用法 # awk [options ] ‘scripts’ file1 file2 .... # ...
- [转]sed命令详解
转载:http://blog.chinaunix.net/u/22677/showart_1076318.html 1.简介 sed是非交互式的编辑器.它不会修改文件,除非使用shell重定向来保 ...
- sed实例精解--例说sed完整版
原文地址:sed实例精解--例说sed完整版 作者:xiaozhenggang 最近在学习shell,怕学了后面忘了前面的就把学习和实验的过程记录下来了.这里是关于sed的,前面有三四篇分开的,现在都 ...
- sed入门详解教程
sed是一个比较古老的,功能十分强大的用于文本处理的流编辑器,加上正则表达式的支持,可以进行大量的复杂的文本编辑操作.sed本身是一个非常复杂的工具,有专门的书籍讲解sed的具体用法,但是个人觉得没有 ...
随机推荐
- 从蓝光到4K,腾讯视频高码率下载背后的技术
欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 由 腾讯技术工程官方号 发布在云+社区 蓝光和4k视频正逐渐普及,4K视频峰值码率超10Mbit/s.架构平台部TVideo平台从资源,链路.缓 ...
- css样式中如何设置中文字体?
代码如下: .selector{ font-family: SimHei,"微软雅黑",sans-serif; } 注意:加上中文名“微软雅黑”是为了兼容opera浏览器,中文字 ...
- js设计模式之惰性单例模式
<html> <body> <button id="loginBtn">登录</button> </body> < ...
- 如何给网站添加SSL证书(免费)
上篇讲了如何将网站部署到服务器上,这篇就讲如何给网站添加SSL证书. 1.先到腾讯云ssl证书认证那里申请一个证书 2.DNS认证 3.下载解压nginx里面的文件 4. 在服务器上/www目录下创建 ...
- linux(八)linux系统中查找文件二
前面介绍的是find命令,我们发现一个find命令居然有那么多的命令,我看到都要晕了,不管没有关系,加油.相信自己! 一.grep命令 1.1.作用 Linux系统中grep命令是一种强大的文本搜索工 ...
- POJ 1659 Frogs' Neighborhood(可图性判定—Havel-Hakimi定理)【超详解】
Frogs' Neighborhood Time Limit: 5000MS Memory Limit: 10000K Total Submissions: 9897 Accepted: 41 ...
- 在windows下详解:大端对齐和小端对齐
计算机的内存最小单位是什么?是BYTE,是字节.一个大于BYTE的数据类型在内存中存放的时候要有先后顺序. 高内存地址放整数的高位,低内存地址放整数的低位,这种方式叫倒着放,术语叫小端对齐.电脑X86 ...
- c语言基础学习05
=============================================================================涉及到的知识点有:for循环有两种写法.数组. ...
- linux下各文件夹的结构说明及用途介绍
linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /ho ...
- [学习OpenCV攻略][017][ARM9下移植OpenCV]
安装环境 宿主机: Red Hat Enterprise Linux Server 6.3 开发板: mini2440 相关软件: cmake-3.5.1.tar.gz.OpenCV-2.3.1a.t ...