(二十一) Sed编辑器高级部分

Sed编辑器高级部分

前一篇文章 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8tgF6eS6-1593678401710)(https://blog.csdn.net/Leslie_LN/article/details/106852597)]我们介绍的所有sed编辑器命令都是针对的***一行数据***进行操作的;假如我们要匹配查找“this is leslie”短语,但如果这个短语分布在两行,用普通sed编辑器命令来处理文本就不可能成功;针对这种情况,sed编辑器包含了三个处理多行文本的特殊命令:

  1. N:将数据下一行加进来创建一个多行组来处理
  2. D:删除多行中的一行
  3. P:打印多行中的一行

1.1 多行命令

1.1.1 next命令

1.单行next命令
小写的n命令:告诉sed编辑器移动到数据流中的下一行文本

流程:

(1)、查找匹配行
(2)、移动到下一行
(3)、执行命令行列表命令

  1. 合并文本行

单行的next命令会将数据流中的下一文本行移动到模式空间;多行的next命令会将下一行添加到模式空间中已有的文本后,将数据流中两行文本合并到同一个模式空间中,文本仍然用换行符分隔,但sed编辑器现在会将两行文本当做一行文本处理;

如:

68

  1. 查找含有first的那行文本,读入模式空间
  2. N命令将下一行文本合并到first那行后面
  3. 替换命令将换行符替换为空格,文本文件中的两行在编辑器的输出中成了一行

***另外一个典型应用:***替换位于两行文字的文本短语

	on Tuesday,the Linux System
	Administrator's group meeting will be held.
	Thank you for your attendance.
	All System Administrators should attend.

这儿替换System Administrator’s,注意第一处是位于两行之间,第二处是位于最后一行;

这只是替换了跨多行的短语替换,如

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值