免费注册 查看新帖 |

Chinaunix

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

[文本处理] 查找输出指定字符串之前的某行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-12-21 15:05 |只看该作者 |倒序浏览
比如下面这个文件内容:

  1. AAAAAAAAAAAAAAAAAAAAAAbbbbbb
  2. 11
  3. AAAAAAAAAAAAAAAAAAAAAAdddddddd
  4. 22
  5. 33
  6. FLAG
  7. AAAAAAAAAAAAAAAAAAAAAAeeeeeeeeeeee
  8. 44
  9. 55
  10. 66
  11. 77
  12. 88
  13. FLAG
  14. AAAAAAAAAAAAAAAAAAAAAAfffff
  15. AAAAAAAAAAAAAAAAAAAAAAggg
  16. FLAG
  17. 999
复制代码
我期望输出所有FLAG前面最近的匹配“AAAAAAAAAAAAAAAAAAAAAA”的行,即输出:
  1. AAAAAAAAAAAAAAAAAAAAAAdddddddd
  2. AAAAAAAAAAAAAAAAAAAAAAeeeeeeeeeeee
  3. AAAAAAAAAAAAAAAAAAAAAAggg
复制代码

论坛徽章:
54
2015亚冠之德黑兰石油
日期:2015-07-07 13:00:1615-16赛季CBA联赛之深圳
日期:2016-03-31 09:03:5415-16赛季CBA联赛之辽宁
日期:2016-05-09 20:38:15程序设计版块每日发帖之星
日期:2016-05-12 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-13 15:19:4715-16赛季CBA联赛之福建
日期:2016-05-15 20:24:34每日论坛发贴之星
日期:2016-05-16 06:20:0015-16赛季CBA联赛之吉林
日期:2016-05-26 11:49:4715-16赛季CBA联赛之广东
日期:2016-05-26 13:49:18极客徽章
日期:2016-12-07 14:05:2315-16赛季CBA联赛之广夏
日期:2016-12-20 17:33:532017金鸡报晓
日期:2017-01-10 15:19:56
2 [报告]
发表于 2015-12-21 15:09 |只看该作者
本帖最后由 haooooaaa 于 2015-12-21 15:12 编辑
  1. awk '/AAAAAAA+/{a=$0}/FLAG/{print a}'
复制代码
  1. sed -n '/AAAAA*/{h};/FLAG/{g;p}'
复制代码

论坛徽章:
0
3 [报告]
发表于 2015-12-22 20:30 |只看该作者
回复 2# haooooaaa


    谢谢。我的问题稍微改变一下,请再帮忙看看如何处理的?
  1. AAAAAAAAAAAAAAAAAAAAAAbbbbbb
  2. 11
  3. AAAAAAAAAAAAAAAAAAAAAAdddddddd
  4. 22
  5. 33
  6. FLAG
  7. AAAAAAAAAAAAAAAAAAAAAAeeeeeeeeeeee
  8. 44
  9. 55
  10. 66
  11. 77
  12. 88
  13. FLAG
  14. AAAAAAAAAAAAAAAAAAAAAAfffff
  15. 0000
  16. AAAAAAAAAAAAAAAAAAAAAAggg
  17. 1111111
  18. FLAG
  19. 999
  20. AAAAAAAAAAAAAAAAAAAAAAjjjjjjj
复制代码
如何去除最后一个“FLAG”前面匹配“AAAAAAAAAAAAAAAAAAAAAA”的最近的行,即输出:AAAAAAAAAAAAAAAAAAAAAAggg

论坛徽章:
20
卯兔
日期:2015-01-26 22:05:142015亚冠之萨济拖拉机
日期:2015-09-10 15:15:282015亚冠之阿尔希拉尔
日期:2015-09-25 17:37:53程序设计版块每日发帖之星
日期:2015-10-03 06:20:00程序设计版块每日发帖之星
日期:2015-12-09 06:20:00CU十四周年纪念徽章
日期:2015-12-17 09:07:15程序设计版块每日发帖之星
日期:2015-12-25 06:20:34程序设计版块每日发帖之星
日期:2015-12-25 06:20:34程序设计版块每日发帖之星
日期:2015-12-25 06:20:342015亚冠之广州富力
日期:2015-08-27 19:29:56每日论坛发贴之星
日期:2015-08-26 06:20:002015亚冠之阿尔希拉尔
日期:2015-05-18 17:26:27
4 [报告]
发表于 2015-12-22 22:08 |只看该作者
本帖最后由 songyc_2015 于 2015-12-22 22:19 编辑

回复 3# linlone
  1. awk '/AAAA+/{s=$0}/FLAG/{y=s}END{print y}' file
  2. sed -nr '/AAAA+/H;/FLAG/{s/.*/#/;H};${g;s/.*\n([^\n]+)\n#.*$/\1/p}' file
复制代码

论坛徽章:
0
5 [报告]
发表于 2015-12-23 10:09 |只看该作者
回复 4# songyc_2015


    帅
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP