Chinaunix

标题: sed 删除 [打印本页]

作者: yangyang1581    时间: 2012-03-28 10:06
标题: sed 删除
本帖最后由 yangyang1581 于 2012-03-28 10:07 编辑

求助`
a文件
asdsa
21321
sdfsf
apple
sfsd
234
apple
ttttt
5555

sed '0,/apple/d'  a文件

得出的结果是   
sfsd
234
apple
ttttt
5555

为什么不能匹配到最后一个apple所在的行

想要的结果是
ttttt
5555
作者: yinyuemi    时间: 2012-03-28 10:20
本帖最后由 yinyuemi 于 2012-03-28 10:52 编辑

回复 1# yangyang1581


--
  1. sed -n '0,/apple/{/apple/!d;/apple/{:a;n;H;$bb;/apple/{h};ba}};:b;x;s/apple\n//p'
复制代码
写的比较复杂
作者: ziyunfei    时间: 2012-03-28 10:29
  1. sed -n 'H;/apple/{x};${g;s/apple\n//;p}'
复制代码
我是新手
作者: xiaopan3322    时间: 2012-03-28 10:32
这个是shell大赛题吧……
作者: cjaizss    时间: 2012-03-28 10:35
yangyang1581 发表于 2012-03-28 10:06
求助`
a文件
asdsa

这样的接法只可以匹配到第一个
要想匹配最后一个,还需要有些技巧

作者: jiejie455    时间: 2012-03-28 10:48
  1. sed ':a N;$!ba;s/.*apple\n\(.*\)/\1/' data
复制代码

作者: winway1988    时间: 2012-03-28 10:59
本帖最后由 winway1988 于 2012-03-28 11:05 编辑
  1. sed -n 'H;/apple/{:a;n;/apple/ba;h;};${g;p}' urfile
复制代码

作者: hbmhalley    时间: 2012-03-28 12:58
本帖最后由 hbmhalley 于 2012-03-28 13:05 编辑

  1. sed ':1;/^apple$/Md;$!{N;b1;}' urfile
复制代码

作者: cjaizss    时间: 2012-03-28 13:49
hbmhalley 发表于 2012-03-28 12:58

传说中的M命令?从来没用过
作者: hbmhalley    时间: 2012-03-28 16:29
回复 9# cjaizss


    偷懒用的 就是/\n?apple$/d的意思
作者: ajdan4q    时间: 2012-03-28 17:28
呃,,楼主好像是想知道为什么。。
作者: cjaizss    时间: 2012-03-29 09:31
hbmhalley 发表于 2012-03-28 16:29
回复 9# cjaizss

行模式,好东西,这样很多东西可以方便多了




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2