免费注册 查看新帖 |

Chinaunix

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

[文本处理] 文本中数据块操作,高手请进 [复制链接]

论坛徽章:
1
程序设计版块每日发帖之星
日期:2016-07-11 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-07-08 11:52 |只看该作者 |倒序浏览
本帖最后由 308123027 于 2016-07-08 12:44 编辑

有一段文本A,现在要从中提取出查找固定特征的数据块,并删除,并将文本B中固定特征的数据块插入A中;

‘        tristate "BBBBB NET"’上述类似单行前面为多个space或tab

    1.每个config下面的行间会有空行吗?      config下面行间没有空行
2.每个config下面的行数固定吗? 4行?        不固定,但格式是固定的tristate, default, ----help---(help后面内容可以多行)
3.每个config间会有空行分隔吗?           可有,可无

需要用sed或awk

A:

if MTK_NET
config BBBBB_NET
        tristate "BBBBB NET"
        default n
        ---help---
        BBBBB NET BBBBB's N/K device.
config NET_AAAAA_GF_TEE
        tristate "AAAAA NET"
        default n
        ---help---
        AAAAA NET chip M TEE driver
endif
endmenu

B:
if MTK_NET
config AAAAA_NET
        tristate "AAAAA NET"
        default y
        ---help---
        AAAAA NET chip M TEE driver
config AAAAA_SENSOR_TYPE
        string "SENSOR_TYPE"
        default "M"
        ---help---
        Must input sensor type, or default is M
endif
endmenu

修改后的内容为:
if MTK_NET
config BBBBB_NET
        tristate "BBBBB NET"
        default n
        ---help---
        BBBBB NET BBBBB's N/K device.
config AAAAA_NET
        tristate "AAAAA NET"
        default y
        ---help---
        AAAAA NET chip M TEE driver
config AAAAA_SENSOR_TYPE
        string "SENSOR_TYPE"
        default "M"
        ---help---
        Must input sensor type, or default is M
endif
endmenu

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
2 [报告]
发表于 2016-07-08 12:18 |只看该作者
回复 1# 308123027


    为什么A中“
config NET_AAAAA_GF_TEE
        tristate "AAAAA NET"
        default n
        ---help---
        AAAAA NET chip M TEE drive

不要了?

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
3 [报告]
发表于 2016-07-08 12:28 |只看该作者
1.每个config下面的行间会有空行吗?
2.每个config下面的行数固定吗? 4行?
3.每个config间会有空行分隔吗?

论坛徽章:
1
程序设计版块每日发帖之星
日期:2016-07-11 06:20:00
4 [报告]
发表于 2016-07-08 12:40 |只看该作者
回复 2# yinyuemi


    因为新文件中用config AAAAA_NET来定义了旧的内容,旧的config NET_AAAAA_GF_TEE不再使用

论坛徽章:
1
程序设计版块每日发帖之星
日期:2016-07-11 06:20:00
5 [报告]
发表于 2016-07-08 12:43 |只看该作者
回复 3# moperyblue


    1.每个config下面的行间会有空行吗?      config下面行间没有空行
2.每个config下面的行数固定吗? 4行?        不固定,但格式是固定的tristate, default, ----help---(help后面内容可以多行)
3.每个config间会有空行分隔吗?           可有,可无

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
6 [报告]
发表于 2016-07-08 13:15 |只看该作者
我就是随便一问, 比如文件 a 有没有可能出现像下面这种交错的情况?
if MTK_NET
config BBBBB_NET
        tristate "BBBBB NET"
        default n
        ---help---
        BBBBB NET BBBBB's N/K device.
config NET_AAAAA_GF_TEE
        tristate "AAAAA NET"
        default n
        ---help---
        AAAAA NET chip M TEE driver
config BBBBB_NET
        tristate "CCCCC NET"
        default n
        ---help---
        BBBBB NET BBBBB's N/K device.
config NET_AAAAA_GF_TEE
        tristate "AAAAA NET"
        default n
        ---help---
        AAAAA NET chip M TEE driver
endif
endmenu

论坛徽章:
1
程序设计版块每日发帖之星
日期:2016-07-11 06:20:00
7 [报告]
发表于 2016-07-08 13:23 |只看该作者
回复 6# sunzhiguolu


    没有,类似的 config NET_AAAAA_GF_TEE 定义,是唯一的block

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
8 [报告]
发表于 2016-07-08 13:33 |只看该作者
提供一个思路:
在 B 中将需要的哪些块抓出来;
在 A 中 确定不要的块 (也就是唯一的块), 用 B 中抓出来的块替换一下就 OK 了.

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
9 [报告]
发表于 2016-07-08 14:00 |只看该作者
  1. sed -r '/config |endif/i \\' B|sed '/config /{:a;N;/\n$/!ba;/AAAAA/H};${g;p};d' > values
  2. sed -i -r '/config |endif/i \\' A
  3. sed '/config .*AAAAA/{:a;N;/\n$/!ba;s/.*/cat values/e}' A
  4. rm values
复制代码

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
10 [报告]
发表于 2016-07-08 16:01 |只看该作者
308123027 发表于 2016-07-08 12:40
回复 2# yinyuemi


有标准的规则么?关键词好像不一样啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP