免费注册 查看新帖 |

Chinaunix

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

如何提取两特定字符串间的多行字符? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-05-22 23:50 |只看该作者 |倒序浏览
本帖最后由 kevinadmin 于 2011-05-23 22:19 编辑

请都各位朋友,我想提取两个特定字符所有行的中间多行字符,

例如,文件如下:
asdfasdf
asdf
asdfasdfasdf
AAAAAA dfasfsdfs  #有用信息,开始
AAAAAA dfasfsdfs
AAAAAA dfasfsdfs
asdfsadfsd
asdfasdf
BBBBB asdfasfsdsf
BBBBB asdfasfsdsf #有用信息,结束
asdfasdf
asdf
asdf

请问:如何提取上面红色字体间的内容? 红色字体之间的内容不固定,有多有少。

用shel或者是perl都可以 只要能实现就行。
谢谢!~~~

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
2 [报告]
发表于 2011-05-22 23:55 |只看该作者
回复 1# kevinadmin
  1. echo 'asdfasdf
  2. asdf
  3. asdfasdfasdf
  4. AAAAAA dfasfsdfs
  5. AAAAAA dfasfsdfs
  6. AAAAAA dfasfsdfs
  7. asdfsadfsd
  8. asdfasdf
  9. BBBBB asdfasfsdsf
  10. BBBBB asdfasfsdsf
  11. asdfasdf
  12. asdf
  13. asdf' | sed -n '/^AAAAAA/,/^BBBBB/{p;/^BBBBB/{:a;n;/^BBBBB/p;ta}}'
  14. AAAAAA dfasfsdfs
  15. AAAAAA dfasfsdfs
  16. AAAAAA dfasfsdfs
  17. asdfsadfsd
  18. asdfasdf
  19. BBBBB asdfasfsdsf
  20. BBBBB asdfasfsdsf
复制代码

论坛徽章:
0
3 [报告]
发表于 2011-05-23 09:39 |只看该作者
回复 2# yinyuemi

如果文本格式是这样的呢?你的写法就用不了了吧?
  1. asdfasdf
  2. asdf
  3. asdfasdfasdf
  4. AAAAAA dfasfsdfs
  5. AAAAAA dfasfsdfs
  6. AAAAAA dfasfsdfs
  7. asdfsadfsd
  8. asdfasdf
  9. BBBBB asdfasfsdsf
  10. asgasdfasdfasdf
  11. BBBBB asdfasfsdsf
  12. asdfasdf
  13. asdf
  14. asdf'
复制代码

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
4 [报告]
发表于 2011-05-23 09:59 |只看该作者
回复 3# where27


    不知lz的数据是不是包含这样的情况,如果是的话就不行了,再改下:
  1. sed -n '/^AAAAAA/,/^BBBBB/{p;/^BBBBB/{n;:a;$! N;/.*\nBBBBB[^\n]*$/{p;n};$b;ba}}'
复制代码

论坛徽章:
0
5 [报告]
发表于 2011-05-23 10:16 |只看该作者

  1. sed "/AAAAAA dfasfsdfs/,`grep -n "BBBBB asdfasfsdsf" urlfile|tail -1|cut -d: -f1`! d" urlfile
复制代码

论坛徽章:
0
6 [报告]
发表于 2011-05-23 10:26 |只看该作者
回复 4# yinyuemi


   

论坛徽章:
0
7 [报告]
发表于 2011-05-23 10:37 |只看该作者
sed 的partten space到底能N多少内容呢?

论坛徽章:
0
8 [报告]
发表于 2011-05-23 10:38 |只看该作者
简化一下
  1. sed -n '/^AAAAAA/{:a;N;${s/\(.*BBBBB[^\n]*\).*/\1/p};Ta}' file
复制代码

论坛徽章:
0
9 [报告]
发表于 2011-05-23 10:40 |只看该作者
回复 7# nuclearxin


    我觉得可以一直N,直到内存耗尽

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
10 [报告]
发表于 2011-05-23 11:02 |只看该作者
回复 6# where27


    啥意思
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP