免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2342 | 回复: 8

[文本处理] 新手请教一个文本处理的问题 [复制链接]

论坛徽章:
0
发表于 2014-04-08 16:41 |显示全部楼层
数据如下:
DPB  LN  XYN  BHE            SME  1  D  2014-02-24  15:47:08.14         87.8   102.8  0.0  0.10  ML   1.2                                                                                                                  
DPB  LN  XYN  BHE            Sg   1  V  2014-02-24  15:47:08.06  -0.02  87.0   102.8                                                                              
DPB  LN  XYN  BHZ       U    Pg   1  V  2014-02-24  15:46:57.82  -0.11  87.0   102.8                                                                              
DPB  LN  YKO  BHZ   R        Pg   1  V  2014-02-24  15:46:49.09  0.02   33.0   47.2                                                                              
DPB  LN  YKO  BHN            Sg   1  V  2014-02-24  15:46:53.50  0.45   33.0   47.2                                                                                                                                       
DPB  CB  BAC   BHZ  E  n  eP   0  V  2014-02-24  15:30:35.10  -0.70  18.2  333.0                                                                                 
DPB  CB  BAC   BHZ  n  n  LZ   0  V                                  18.2  333.0  0.1  13.10                                                                     
DPB  CB  BAC   BHN  n  n  LN   0  V                                  18.2  333.0  0.3  13.70                                                                     
DPB  CB  BAC   BHZ  n  n  sP   0  V  2014-02-24  15:31:11.30  2.70   18.2  333.0
小弟要实现的是把日期数据给提出来,但是数据本身并不对齐,有的地方第五第六列丢失,有的只丢了一列,有的甚至日期丢了。。。请教下各位大神如何实现这个要求,谢谢各位。。。

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
发表于 2014-04-08 16:44 |显示全部楼层
  1. grep -o -E "[0-9]{4}-[0-9]{2}-[0-9]{2}" a.txt
复制代码

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
发表于 2014-04-08 16:55 |显示全部楼层
本帖最后由 yestreenstars 于 2014-04-08 23:55 编辑
  1. grep -Po '\d{4}(-\d{2}){2}'
复制代码

论坛徽章:
0
发表于 2014-04-08 20:12 |显示全部楼层
感谢楼上的二位,小弟我试试看,另外请教个问题,能用awk写么。。?

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
发表于 2014-04-09 00:00 |显示全部楼层
回复 4# guiltyone

try:
  1. awk -v RS='[0-9]{4}-[0-9]{2}-[0-9]{2}' '{print RT}'
复制代码

论坛徽章:
0
发表于 2014-04-09 00:17 |显示全部楼层
本帖最后由 sharkww 于 2014-04-09 00:17 编辑

回复 1# guiltyone


我上一次也遇到空字段问题,当时的文件是以TAB为字段分隔符,解决方法是显式制定FS为一个TAB。
awk 'BEGIN{FS="\t"}{print $10}' file

论坛徽章:
0
发表于 2014-04-09 08:54 |显示全部楼层
回复 2# Shell_HAT


    真漂亮 赞~~~~~

论坛徽章:
0
发表于 2014-04-09 14:40 |显示全部楼层
谢谢各位大神,小弟平时用惯了win,对linux真的不了解,多谢各位的细心指导

论坛徽章:
1
巳蛇
日期:2014-04-17 12:33:24
发表于 2014-04-09 20:33 |显示全部楼层
回复 5# yestreenstars


    这个太漂亮了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP