免费注册 查看新帖 |

Chinaunix

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

文本处理求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-02-15 17:35 |显示全部楼层 |倒序浏览
  1. ---AAA
  2. dskjfnsd
  3. dfnsdjkf
  4. dfs
  5. gflh
  6. hfgh
  7. fgdf
  8. ---BBB
  9. fgdf
  10. fgdfgd
  11. dfsf
  12. fdg
  13. ---CCC
  14. gfdkgs
  15. gfhd
  16. sdsad
  17. gkdf
复制代码
文本格式大体如上所示。

要删除指定的标记行(---开头)到下一个标记行或文件结尾之间的行。

自己尝试写了个sed如下:
  1. sed -e "s/^---BBB//;t a;b c;{:a;/^[^-]/d;N;b a};:c"
复制代码
但是只会删除---行和其下一行。

还请各位大神指教。

论坛徽章:
0
2 [报告]
发表于 2011-02-16 11:11 |显示全部楼层
抱歉,是我没有说清楚。
  1. ---AAA
  2. A的内容,若干行
  3. ---BBB
  4. B的内容,若干行
  5. ---CCC
  6. C的内容,若干行
复制代码
如果删除^---BBB的话,得到的应该是
  1. ---AAA
  2. A的内容,若干行
  3. ---CCC
  4. C的内容,若干行
复制代码

论坛徽章:
0
3 [报告]
发表于 2011-02-16 19:11 |显示全部楼层
回复 12# 南极雨

并不知道给定标签的下一个标签是什么。

论坛徽章:
0
4 [报告]
发表于 2011-02-16 19:12 |显示全部楼层
lkk2003rty 发表于 2011-02-16 17:29


回复 11# lkk2003rty

感谢小毛孩,测试有效。

论坛徽章:
0
5 [报告]
发表于 2011-02-17 11:59 |显示全部楼层
回复 16# lkk2003rty

感谢!学习了。

我觉得SED也应该可以搞定,不知有没有哪位大侠给一个SED的做法?

论坛徽章:
0
6 [报告]
发表于 2011-02-17 13:07 |显示全部楼层
sed '/^---BBB/,/^---CCC/{/---CCC/!d}'  file
yinyuemi 发表于 2011-02-17 12:46


我在前面说过了,除了指定的删除标签,并不清楚其前后的标签是什么。

论坛徽章:
0
7 [报告]
发表于 2011-02-17 13:58 |显示全部楼层
我在4楼的代码不符合要求吗?
cjaizss 发表于 2011-02-17 13:23


貌似正好和要求相反,输出了要求删除的数据,其他的都没了。

论坛徽章:
0
8 [报告]
发表于 2011-02-17 14:12 |显示全部楼层
回复  ShadowStar (*^__^*) 嘻嘻……  偷别人的改改就行了。。。
lkk2003rty 发表于 2011-02-17 13:22


测试好用!大侠能否解释一下?让我学习学习。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP