免费注册 查看新帖 |

Chinaunix

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

[文本处理] 定位字符串 截取匹配格式之间行 [复制链接]

论坛徽章:
2
15-16赛季CBA联赛之四川
日期:2020-08-18 20:19:4815-16赛季CBA联赛之青岛
日期:2022-01-19 11:51:49
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2023-08-22 17:57 |显示全部楼层 |倒序浏览
本帖最后由 unix520 于 2023-08-23 15:59 编辑
  1. 请以文本中倒数第一个含有 " 新增" 的字符串的行, 匹配该行其中一个字符串格式 /([0-9A-Z]{1,2}:){4}[0-9A-Z]{1,2}/ , 截取文本中所有该相同名称字符串至 "结束" 之间行,    "新增" 至  "结束" 可能中间会有很多行  , 或不是相邻
复制代码
  1. awk '/([0-9A-Z]{1,2}:){4}[0-9A-Z]{1,2}/,/结束/' 1.txt    这个会全部输出
复制代码
  1. a 新增  01:02:03:04:05:06 (
  2. b 结束

  3. c 新增  A1:A2:A3:A4:A5:A6 (
  4. d 结束


  5. e 新增  U 01:02:03:04:05:06 (
  6. f 结束

  7. g 新增  01:02:03:04:05:06 (
  8. f 结束

  9. v 01:02:03:04:05:06
复制代码


截取到所有名称至"结束" 之间行
应该要得到
2.txt
  1. a 新增  01:02:03:04:05:06 (
  2. b 结束


  3. e 新增  U 01:02:03:04:05:06 (
  4. f 结束

  5. g 新增  01:02:03:04:05:06 (
  6. f 结束
复制代码


Thanks


论坛徽章:
2
15-16赛季CBA联赛之四川
日期:2020-08-18 20:19:4815-16赛季CBA联赛之青岛
日期:2022-01-19 11:51:49
2 [报告]
发表于 2023-08-23 11:28 |显示全部楼层
本帖最后由 unix520 于 2023-08-23 12:46 编辑

回复 2# legs




如果倒数中发现第一个有 "新增" 字符串的行,   该行其中有一个字符串名称是一种格式, 但在该行位置不固定   需找出所有该名称至结束之间行
匹配该格式名称
  1. /([0-9A-Z]{1,2}:){2}[0-9A-Z]{1,2}/
复制代码

e 新增  00:01:02 (





论坛徽章:
2
15-16赛季CBA联赛之四川
日期:2020-08-18 20:19:4815-16赛季CBA联赛之青岛
日期:2022-01-19 11:51:49
3 [报告]
发表于 2023-08-23 14:15 |显示全部楼层
本帖最后由 unix520 于 2023-08-23 14:16 编辑

回复 4# legs

v 31:00:01
倒数第一行 虽然格式能匹配, 但没有" 新增"字段


c 新增  10:11:12 (
虽然有" 新增"字段,    但是要匹配字符串名称不相同


论坛徽章:
2
15-16赛季CBA联赛之四川
日期:2020-08-18 20:19:4815-16赛季CBA联赛之青岛
日期:2022-01-19 11:51:49
4 [报告]
发表于 2023-08-23 15:58 |显示全部楼层
本帖最后由 unix520 于 2023-08-23 16:04 编辑

回复 6# legs

    不是时间   这是ㄧ串ID格式   由于太长原因 我减少了几个 01:02:03:04:05:06
至于其他不用理会      在顶楼已更正

至于加上a b c d 隔开, 是防止匹配了开头字段  "^新增"  "^结束"

论坛徽章:
2
15-16赛季CBA联赛之四川
日期:2020-08-18 20:19:4815-16赛季CBA联赛之青岛
日期:2022-01-19 11:51:49
5 [报告]
发表于 2023-08-23 16:28 |显示全部楼层
本帖最后由 unix520 于 2023-08-23 16:34 编辑

回复 8# legs

对,,差不多这意思,   不是时间   这是ㄧ串ID格式, (\d\d:\d\d:\d\d) 如有大写字母咋办,  200MB文件 效率也很重要,,越快越好


论坛徽章:
2
15-16赛季CBA联赛之四川
日期:2020-08-18 20:19:4815-16赛季CBA联赛之青岛
日期:2022-01-19 11:51:49
6 [报告]
发表于 2023-08-23 19:22 |显示全部楼层
本帖最后由 unix520 于 2023-08-24 15:44 编辑

回复 8# legs


A1:A2:A3:A4:A5:A6
1A:2A:3A:4A:5A:6A
谢谢大侠,  改了正则匹配是可以的  "[0-9A-Z]+:"      不过好慢啊

论坛徽章:
2
15-16赛季CBA联赛之四川
日期:2020-08-18 20:19:4815-16赛季CBA联赛之青岛
日期:2022-01-19 11:51:49
7 [报告]
发表于 2023-08-24 13:46 |显示全部楼层
本帖最后由 unix520 于 2023-08-24 15:46 编辑

试了上面大侠的好慢,  有用awk的没

论坛徽章:
2
15-16赛季CBA联赛之四川
日期:2020-08-18 20:19:4815-16赛季CBA联赛之青岛
日期:2022-01-19 11:51:49
8 [报告]
发表于 2023-08-25 16:27 |显示全部楼层
这几天感冒了

论坛徽章:
2
15-16赛季CBA联赛之四川
日期:2020-08-18 20:19:4815-16赛季CBA联赛之青岛
日期:2022-01-19 11:51:49
9 [报告]
发表于 2023-08-29 13:30 |显示全部楼层
回复 15# wh7211

没有不尊重意思,   请不要误会哦, 如有一些不当之处,  实在抱歉, 希望大家谅解。已全部更正及还原主题意思
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP