Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3032864
  • 博文数量: 272
  • 博客积分: 5544
  • 博客等级: 大校
  • 技术积分: 5496
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-08 00:48
个人简介

  每个人都要有一个骨灰级的爱好,不为金钱,而纯粹是为了在这个领域享受追寻真理的快乐。

文章分类

全部博文(272)

文章存档

2015年(2)

2014年(5)

2013年(25)

2012年(58)

2011年(182)

分类: LINUX

2011-05-14 15:57:33

文本:

Packages: Hello-1
Owner: me me me me
Other: who care?
Description:
Hello world!
Other2: don't care

1、如果 Description:之后为空,将其后一行内容并入此行。
2、如果Packages中包含‘Hello',将 Owner那一行copy 到Description行的下一行并改为Origial-Owner。

Packages: Hello-1
Owner: me me me me
Other: who care?
Description: Hello world!
Origial-Owner: me me me me
Other2: don't care



  1. sed '/Packages.*Hello/{n;h;s/^/Origial-/;x};/Description:$/{N;s/\n/ /;G}' file

[解析]
  首先匹配到有 Packages.*Hello 字样的行,n对下行进行操作,h拷贝下一行内容到缓冲区,然后替换开头为 Origial- (就是在前面添加该字样),x再和缓冲区内容对调,这样下一行的内容输出时并为发生改变,但是这样操作就把修改后的下一样的内容拷贝到缓冲区备用了,然后继续匹配到 Description:$ 结尾的行,N读去下一样内容到本行末尾中间是"\n"连接,然后替换换行为空格,并且G在该行后面添加缓冲区内容到下一行,作为一个新行。

阅读(1874) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~