Sed高级命令----N和D

本文介绍了Sed高级命令中的N和D功能,用于处理多行模式空间。N命令用于追加下一行到模式空间,使多行内容合并,而D命令则用于删除模式空间内容。通过示例,详细解析了如何使用这两个命令,包括它们的区别以及在处理多行模式时的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Sed高级命令之N和D

多行模式空间

模式匹配是面向行的,但是有时很难匹配到一个在一行的结尾处开始,并在下一行的开始除结束的短语,见到来讲就是,假如在第一行因为内容过多,在第一行的行尾有个短语不能完全显示在第一行,这个短语的一部分会在第二行显示,这样在匹配的时候就无法完整的匹配到这个短语。这时多行模式空间就可以解决这个问题
以下简单举个例子解释以下上面的观点

//本来complete是一个完整的词,但是因为第一行内容过多不能完整显示,一部分在第二行显示,这是就可以使用多行模式空间
[root@localhost ~]# cat test 
this is a test file , if this first line not display compl
ete , use next 

追加下一行Next(N)

  • 多行Next(N)命令通过读取新的输入行,并将新的输入行添加到模式空间的现有内容之后创建多行模式空间。
  • 模式空间最初的内容和新的输入行之间用换行符分隔
  • 换行符可以利用转义序列’\n’来匹配
    以下举例演示N:
//不使用N来匹配内容
[root@localhost ~]# sed -n '/compl/p' test 
this is a test file , if this first line not display compl

//使用N来匹配,把第二行添加到模式空间,创建多行模式空间
[root@localhost ~]# sed -n '/compl/N;p' test 
this is a test file , if this first line not display compl
ete , use next 

以下举例演示使用N,并且把第一行与第二行之间的换行符给给去掉,使之在一行显示

//在创建发多行模式空间后
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值