sed高级命令N、D

本文介绍了sed命令中的N和D两个高级操作。N命令用于将下一行文本追加到模式空间,使得两行数据可以作为一行处理,例如在例子中将两行文本合并。而D命令则删除模式空间中的第一行,常用于多行删除操作。通过示例展示了这两个命令的实际应用,帮助读者理解如何在实际文本处理中灵活运用。
摘要由CSDN通过智能技术生成

sed高级命令N、D

sed高级命令N、D

N提前读入下一行追加到模式空间
D删除多行模式空间中的所有行

N 多行操作命令

N 命令会将下一行文本内容添加到缓冲区已有数据之后(之间用换行符分隔),从而使前后两个文本行同时位于缓冲区中,sed 命令会将这两行数据当成一行来处理

[root@localhost ~]# cat sss.txt 
111 222 333 444 555
555 444 333 222 111
aaa bbb ccc ddd eee
eee ddd ccc bbb aaa

[root@localhost ~]# sed '/first/{N;s/\n/ /}' sss.txt 
111 222 333 444 555
555 444 333 222 111aaa bbb ccc ddd eee
eee ddd ccc bbb aaa

D 多行删除命令

sed 不仅提供了单行删除命令(d),也提供了多行删除命令 D,其作用是只删除缓冲区中的第一行,也就是说,D 命令将缓冲区中第一个换行符(包括换行符)之前的内容删除掉。如果模式空间包含换行符,则删除直到第一个换行符的模式空间中的文本, 并不会读取新的输入行,而使用合成的模式空间重新启动循环。如果模式空间不包含换行符,则会像发出d命令那样启动正常的新循环。

[root@localhost ~]# cat sss.txt 

On Tuesday, the Linux System
Administrator's group meeting will be held.
All System Administrators should attend.

Thank you for your attendance.

[root@localhost ~]# sed '/^$/{N ; /System/D}' lq.txt 
On Tuesday, the Linux System
Administrator's group meeting will be held.
All System Administrators should attend.

Thank you for your attendance.

ttend.

Thank you for your attendance.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值