免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3029 | 回复: 11
打印 上一主题 下一主题

新手请教sed删除问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-03-20 19:27 |只看该作者 |倒序浏览
本帖最后由 zerotown 于 2012-03-20 20:26 编辑

新手请教,假设test.txt内容如下
1234asdf,
5678qwer,
string
请问用sed将文本中string的上一行5678qwer,最后的逗号删除
就是将匹配特定字符串的上一行的逗号删除,不能删其他行的逗号

google了下,用sed -n 'N;/string/P;D' test.txt 可以定位到上一行,之后怎么删除逗号卡住了...想不到怎么一句搞定。请各位指教。谢谢

论坛徽章:
0
2 [报告]
发表于 2012-03-20 20:06 |只看该作者
同问

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
3 [报告]
发表于 2012-03-20 20:09 |只看该作者
回复 1# zerotown
  1.     sed 'N;/\n.*string/s/...;P;D' urfile
复制代码

论坛徽章:
0
4 [报告]
发表于 2012-03-20 20:28 |只看该作者
本帖最后由 yuhuohu 于 2012-03-20 20:29 编辑
blackold 发表于 2012-03-20 20:09
回复 1# zerotown

# sed -n 'N;/\n.*string/s/...;D'  /tmp/test
sed: -e expression #1, char 23: unterminated `s' command

论坛徽章:
0
5 [报告]
发表于 2012-03-20 20:36 |只看该作者
貌似我也是出现同样的错误,请指教,N;D;的方法还是不太懂 回复 3# blackold


   

论坛徽章:
0
6 [报告]
发表于 2012-03-20 21:27 |只看该作者
本帖最后由 loveacat 于 2012-03-20 21:33 编辑
zerotown 发表于 2012-03-20 20:36
貌似我也是出现同样的错误,请指教,N;D;的方法还是不太懂 回复 3# blackold
  1. $ sed 'N;/\n.*string/s/,//;P;D' test
  2. 1234asdf,                #N读入下一行,模式空间1234asdf,\n5678qwer, 下一个命令匹配string,这里没有匹配,所有直接执行
  3. 5678qwer                #P,打印模式空间内容直到\n,即1234asdf,然后D,删除模式空间内容直到\n,现在模式空间是5678qwer,
  4. string                     #再次执行N,模式空间5678qwer,\nstring,匹配string删除",",然后执行P,D命令,最后string执行N下一行没有直接打印
复制代码

论坛徽章:
0
7 [报告]
发表于 2012-03-20 22:14 |只看该作者
本帖最后由 zerotown 于 2012-03-20 22:15 编辑

非常感谢您的指点和解释...测试可以顺利替换。{:3_200:}
loveacat 发表于 2012-03-20 21:27

论坛徽章:
0
8 [报告]
发表于 2012-03-20 22:25 |只看该作者
回复 6# loveacat


    同感谢!解释的很棒!

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
9 [报告]
发表于 2012-03-21 01:09 |只看该作者
回复 4# yuhuohu


    汗。

    我写的不是完整的命令,你那样运行肯定出错了。

论坛徽章:
0
10 [报告]
发表于 2012-03-21 08:45 |只看该作者
回复 9# blackold


    呵呵,就觉得那s/.....;怎么看怎么不对劲
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP