免费注册 查看新帖 |

Chinaunix

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

[文本处理] 从数据文件中提取特定数据,求大牛帮忙 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-09-22 22:02 |只看该作者 |倒序浏览
求各位大牛帮帮忙,文件格式如下:
a 111   222
  1.1  1.2  1.3
ba 111  222
  2.1  2.2  2.3
c 111 222
  3.1 3.2  3.3
.......
a 111   222
  7.1  7.2  7.3
ba 111  222
  8.1  8.2  8.3
c 111 222
  9.1 9.2  9.3
........(文件很大,类似于这样的循环,上面的数值只是我随意编写,不是文件中的)
需要提取出
a 1.1 1.2 1.3
c 3.1 3.2 3.3
a 7.1 7.2 7.3
c 9.1 9.2 9.3
.......(其实就是提取对应坐标)

求大神帮助,急~

论坛徽章:
10
天蝎座
日期:2013-09-22 22:32:23程序设计版块每日发帖之星
日期:2016-08-07 06:20:00lufei
日期:2016-06-17 17:38:40程序设计版块每日发帖之星
日期:2016-06-12 06:20:002016科比退役纪念章
日期:2016-05-31 15:47:20CU十四周年纪念徽章
日期:2016-05-27 12:24:562015年亚洲杯之阿曼
日期:2015-05-03 21:01:352015年辞旧岁徽章
日期:2015-03-03 16:54:15天蝎座
日期:2013-10-20 21:05:24程序设计版块每日发帖之星
日期:2016-08-11 06:20:00
2 [报告]
发表于 2013-09-22 22:19 |只看该作者
回复 1# lionsingasong

  1. sed -nr '/^[a-zA-Z]+/{s/([a-zA-Z]+).*/\1/g;N;s/\n//p}'
复制代码

论坛徽章:
0
3 [报告]
发表于 2013-09-22 22:49 |只看该作者
谢谢你的回答,我测试了一下,这个命令感觉只是输出行信息。
不过我的输出的时候,那个ba那个组的数据是不输出的,还有有些出入。
能帮忙再看看嘛?回复 2# liion631818


   

论坛徽章:
10
天蝎座
日期:2013-09-22 22:32:23程序设计版块每日发帖之星
日期:2016-08-07 06:20:00lufei
日期:2016-06-17 17:38:40程序设计版块每日发帖之星
日期:2016-06-12 06:20:002016科比退役纪念章
日期:2016-05-31 15:47:20CU十四周年纪念徽章
日期:2016-05-27 12:24:562015年亚洲杯之阿曼
日期:2015-05-03 21:01:352015年辞旧岁徽章
日期:2015-03-03 16:54:15天蝎座
日期:2013-10-20 21:05:24程序设计版块每日发帖之星
日期:2016-08-11 06:20:00
4 [报告]
发表于 2013-09-22 23:01 |只看该作者
回复 3# lionsingasong


    你没描述清楚,你只要第一列是a或者b的?

论坛徽章:
0
5 [报告]
发表于 2013-09-22 23:03 |只看该作者
回复 4# liion631818
恩 只要a,c那两组数据

   

论坛徽章:
10
天蝎座
日期:2013-09-22 22:32:23程序设计版块每日发帖之星
日期:2016-08-07 06:20:00lufei
日期:2016-06-17 17:38:40程序设计版块每日发帖之星
日期:2016-06-12 06:20:002016科比退役纪念章
日期:2016-05-31 15:47:20CU十四周年纪念徽章
日期:2016-05-27 12:24:562015年亚洲杯之阿曼
日期:2015-05-03 21:01:352015年辞旧岁徽章
日期:2015-03-03 16:54:15天蝎座
日期:2013-10-20 21:05:24程序设计版块每日发帖之星
日期:2016-08-11 06:20:00
6 [报告]
发表于 2013-09-22 23:08 |只看该作者
回复 5# lionsingasong


    由于你没有足够的描述信息,我做了下面的假设
1. 你只要第一列是a或者b,且后面紧跟空格
2,匹配上面信息信息的行的下一行是坐标信息

  1. sed -nr '/^([a|c]) .*/{s//\1/g;N;s/\n//p}'
复制代码

论坛徽章:
0
7 [报告]
发表于 2013-09-22 23:11 |只看该作者
回复 6# liion631818
测试成功,非常感谢~

   

论坛徽章:
36
摩羯座
日期:2013-09-23 16:37:312015年亚洲杯之沙特阿拉伯
日期:2015-04-14 09:10:172015亚冠之柏太阳神
日期:2015-06-25 08:48:212015亚冠之武里南联
日期:2015-07-28 09:01:082015亚冠之莱赫维亚
日期:2015-07-28 15:44:172015亚冠之柏斯波利斯
日期:2015-09-06 14:08:52白银圣斗士
日期:2015-11-25 17:06:2815-16赛季CBA联赛之吉林
日期:2015-12-09 16:59:072016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之辽宁
日期:2016-04-14 09:29:04luobin
日期:2016-06-17 17:46:3615-16赛季CBA联赛之天津
日期:2016-08-16 14:11:01
8 [报告]
发表于 2013-09-23 15:32 |只看该作者
awk '/^[a|c]/{getline b;print $1,b}'
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP