sed高级命令小记

sed高级命令:

g: 将hold space中的内容拷贝到pattern space中,原来pattern space里的内容被覆盖

G:将hold space中的内容append到pattern space\n后

h: 将pattern space中的内容拷贝到hold space中,原来hold space里的内容被覆盖

H: 将pattern space中的内容append到hold space\n后

d: 删除pattern中的所有行,并读入下一新行到pattern中

[[email protected]:bash]# seq 5 | sed ‘/2/{h;d};/4/{G}‘

1

3

4

2

5

[[email protected]:bash]# seq 5 | sed ‘/2/{h;d};/4/{g}‘

1

3

2

5

n命令:读取下一行到pattern space。

N命令:将下一行添加到pattern space中。

P命令:打印模板块的第一行。

seq 5 | sed -n ‘n;P‘

2

4

seq 5 | sed -n ‘N;P‘

1

3

seq 5 | sed -n ‘$!N;P‘

1

3

5

注:$!N就是N对最后一行不起作用。

时间: 2024-10-09 16:26:25

sed高级命令小记的相关文章

linux:sed高级命令之n、N(转)

sed的语法格式: sed [option] {sed-command} {input-file} sed在正常情况下,将处理的行读入模式空间(pattern space),脚本中的“sed-command(sed命令)”就一条接着一条进行处理,知道脚本执行完毕.然后该行呗输出,模式(pattern space)被清空:接着,在重复执行刚才的动作,文件中的新的一行被读入,直到文件处理完毕. 但是,由于种种原因,如用户希望在某个条件下,脚本中的某个命令被执行或希望模式空间(pattern spac

sed高级命令

所谓高级,主要是指这里将要提到的命令都能改变sed执行或者控制的流程顺序(sed通常都是一行被读入模式空间,并用脚本中的sed命令一个接一个的应用于那一行). 高级sed命令分成3个组: 1)处理多行模式空间(N.D.P). 2)采用保持空间来保存模式空间的内容并使他们可用于后续的命令(H.h.G.g.x). 3)编写使用分支和条件指令的脚本来更改控制流(:.b.t). 1.N命令:追加下一行 多行Next(N)命令通过读取当前行的下一行,并把两行拼成一行来进行接下来的处理. [email pr

sed高级命令及模式空间和交换空间简介

高级命令 之前我们用到的sed命令都是一行一行的进行处理文本的,不过有些时候单行处理可能并不能满足我们的需要,所以sed还提供了多行模式,多行模式的命令主要有NPD这三个,N:读取匹配到的行的下一行追加至模式空间P:打印模式空间开端至\n内容,并追加到默认输出之前D:如果模式空间包含换行符,则删除直到第一个换行符的模式空间中的文本, 并不会读取新的输入行,而使用合成的模式空间重新启动循环.如果模式空间 不包含换行符,则会像发出d命令那样启动正常的新循环首先还是先看一下N命令的大致流程图,P和D命

字符及文本处理之sed:sed使用高级命令

三.sed高级编辑命令      t,T,D,P,n,N,H,h,g,G 前面的基本用法已经可以满足基本应用,但sed还有一些高级用法(装X利器),要学习sed高级命令首先要理解清楚sed的另一个缓冲区"保持空间". 前面基本用法中也有提到模式空间,即为处理文件中一行内容的一个临时缓冲区.处理完一行之后就会把模式空间中的内容打印到标准输出,然后自动清空缓存. 而这里说的保持空间是sed中的另外一个缓冲区,此缓冲区正如其名,不会自动清空,但也不会主动把此缓冲区中的内容打印到标准输出中.而

vi/vim高级命令集粹

vi/vim高级命令集粹 (ctrl +v过来 留着以后看) 1.交换两个字符位置 xp 2.上下两行调换 ddp 3.把文件内容反转 :g/^/m0/ (未通过) 4.上下两行合并 J 5.删除所有行 dG 6.从当前位置删除到行尾 d$ 7.从当前位置复制到行尾 y$ 如果要粘贴到其他地方 p 就可以了 由于vi 是建立在 EX 上的 所以 当键入 : 时就来到了 EX 命令状态 8.:ab string strings 例如 ":ab usa United States of Americ

sed和awk之sed篇(含sed高级用法)

(原创文章,谢绝转载~) sed(stream editor)和 awk 是linux环境下处理文本.数据的强大"利器",sed对数据列的处理稍逊,awk则更似一门语言,control flow的语法基本和c语言一样,能够处理复杂的逻辑,二者经常配合正则表达式使用.本文简述sed用法. sed对输入流(文本数据)逐行处理,其基本格式为: sed (OPTIONS...) [SCRIPT] [INPUTFILE...]#examplessed '10d' test.txtsed -i '

Linux网卡高级命令、IP别名及多网卡绑定 转

http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/26/3100065.html 本篇随笔将详细讲解Linux系统的网卡高级命令.IP别名以及Linux下多网卡绑定的知识 一.网卡高级命令 在之前的一篇随笔里Linux学习之CentOS(九)--Linux系统的网络环境配置,详细讲解了Linux系统下的网络环境配置等知识,我们了解了一些关于网络配置的一些基本命令.在这里将补充一些Linux系统下有关网卡的一些高级命令. ①mii-to

你需要知道的12个Git高级命令

众所周知,Git目前已经是分布式版本控制领域的翘楚,围绕着Git形成了完整的生态圈.学习Git,首先当然是学习Git的基本工作流.相比于SVN等传统版本控制系统来说,Git是专为分布式版本控制而生的强大工具.使用Git时常用的命令有pull.commit.push等,貌似很简单.不过,有时你会遇到合并冲突的情况,Git这时会将冲突标记出来,需要你手工来解决.有时,你会不小心将代码提交到错误的分支上,并且又推送到了远程仓库.还有些时候,你需要切换到不同的分支,但Git却不让你这么做,因为还有未保存

【Linux 高级命令】

20个对Linux专家非常有用命令 http://os.51cto.com/art/201308/406979_all.htm 13个超实用的Linux性能监测命令行工具 http://os.51cto.com/art/201304/388673_all.htm 11 个很有用但鲜有人知的 Linux 命令 http://os.51cto.com/art/201310/414075.htm [Linux 高级命令],布布扣,bubuko.com