免费注册 查看新帖 |

Chinaunix

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

[文本处理] [[非常感谢A_Traveler大神 ]] [复制链接]

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-04-24 16:25 |只看该作者 |倒序浏览
本帖最后由 Windows19 于 2015-11-20 13:03 编辑

谢谢        

论坛徽章:
1
2015亚冠之鹿岛鹿角
日期:2015-05-12 13:04:44
2 [报告]
发表于 2015-04-24 17:02 |只看该作者
“把各种符号中的东西取出来”是怎么理解的?比如:
  1. [root@localhost regex]# echo 'a,b,c,d,'|awk -vFS=',' '{for(i=2;i<=NF;i+=2)print $i}'
  2. b
  3. d
  4. [root@localhost regex]# echo 'a,b,c,d,'|grep -oP '(?<=,).*?(?=,)'
  5. b
  6. c
  7. d
复制代码
哪个才是你希望的结果?

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
3 [报告]
发表于 2015-04-24 17:54 |只看该作者
回复 2# A_Traveler


    在测试中、、、、、

论坛徽章:
10
2015年亚洲杯之科威特
日期:2015-04-13 13:51:5315-16赛季CBA联赛之山东
日期:2016-01-16 18:35:0815-16赛季CBA联赛之广东
日期:2016-01-04 15:26:23程序设计版块每日发帖之星
日期:2015-11-13 06:20:002015亚冠之阿尔艾因
日期:2015-11-10 12:32:242015亚冠之阿尔沙巴布
日期:2015-05-15 18:26:49羊年新春福章
日期:2015-04-28 16:45:112015年亚洲杯之伊拉克
日期:2015-04-25 20:06:30羊年新春福章
日期:2015-04-13 13:53:2015-16赛季CBA联赛之八一
日期:2016-01-20 18:23:49
4 [报告]
发表于 2015-04-24 18:06 |只看该作者
本帖最后由 drakness 于 2015-04-24 18:07 编辑

没怎么看懂,瞎蒙一个,如果符合,实乃荣幸
  1. awk -vRS="(\'|\"|\,)"  '!/^$/' urfile
复制代码

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
5 [报告]
发表于 2015-04-24 18:08 |只看该作者
本帖最后由 Windows19 于 2015-04-24 18:18 编辑

回复 2# A_Traveler




grep -oP '(?<=').*?(?=')'



    大神啊 就是你的第二个比较理想  但是在最最后1个符号上判断出错  其它的都正确  


能否可帮忙再修改下 ?



当代码判断到最后这里就会出错了'e.g\'';t\.g"23ttfds324tfsf" efew23rtfFC“温柔山地车"

能否可帮忙再修改下 ?

论坛徽章:
1
2015亚冠之鹿岛鹿角
日期:2015-05-12 13:04:44
6 [报告]
发表于 2015-04-24 20:03 |只看该作者
本帖最后由 A_Traveler 于 2015-04-24 20:16 编辑

回复 5# Windows19

单引号的情况需要特殊处理
  1. echo a"'"b"'"c"'"d"'"|grep -oP "(?<=\').*?(?=\')"
复制代码
  1. b
  2. c
  3. d
复制代码
另外,你是说对于逗号的处理有问题?
这是我用你的文本处理的结果,你可以看下;
  1. [root@localhost test]# grep -oP '(?<=,).*?(?=,)' inputfiles
  2. '636cf748dddaa59d'
  3. '87890910'
  4. [root@localhost test]# grep -oP '(?<=").*?(?=")' inputfiles
  5. ef3rf
  6. fwer23r wefwe23r wefe
  7. efwet234tfdsfs'fse43tvc ff
  8. gferfwe43'\\'e.g\'';t\.g
  9. 23ttfds324tfsf
  10. efew23rtfFC“温柔山地车
  11. [root@localhost test]# grep -oP "(?<=').*?(?=')" inputfiles
  12. 252V=V、‘;、; ,
  13. 636cf748dddaa59d
  14. ,
  15. 87890910
  16. ,,
  17. 219.146.89.58
  18. fse43tvc ff"gferfwe43
  19. \\
  20. e.g\
复制代码

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
7 [报告]
发表于 2015-04-24 21:04 来自手机 |只看该作者
好的,我现在在外面,回去我就测试,有结果告诉你

论坛徽章:
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
8 [报告]
发表于 2015-04-24 22:04 |只看该作者
来个sed的:
  1. $sed -rn ":a;h;s#[^']*'([^']+)'.*#\1#p;H;g;s#[^']*'([^']+)'(.*)\n\1#'\2#;ta" sss
  2. 252V=V、‘;、; ,
  3. 636cf748dddaa59d
  4. ,
  5. 87890910
  6. ,,
  7. 219.146.89.58
  8. fse43tvc ff"gferfwe43
  9. \\
  10. e.g\
复制代码
下面先来取出(第1种)符号应该得到结果
252V=V、‘;、; ,
636cf748dddaa59d
87890910
,,
219.146.89.58
, 14:21:56
fse43tvc ff"gferfwe43'
\\
这个是怎么来的?

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
9 [报告]
发表于 2015-04-25 01:02 |只看该作者
本帖最后由 Windows19 于 2015-04-25 01:13 编辑

刚回来测试了楼上大神的 都还好  但我比较喜欢6楼大神的 但是也发现了一些问题  就是当相当符号连续出现时就判断失误的原因  我想正好也是解决问题原因  就将反馈给大神的  看看还能不能解决

就好像这个连续出现相同符号EFWE'252V=V、‘;、; ,'636cf748dddaa59d','87890910',,'219.146.89.58',0,1,371,NULL,

上面就是连续出现相同符号了  所以还有这一个就取不岀来'219.146.89.58'
下面再举个相同符号岀现例
fsdff" "ef3rf"fwer23r wefwe23r wefe""" efwet234tfdsfs'fse43tvc ff""gferfwe43'\\'e.g\'';t\.g""23ttfds324tfsf" efew23rtfFC“"""温柔山地车"

不知道这个问题希望能得到解决?

论坛徽章:
22
2015年亚洲杯之科威特
日期:2015-04-18 15:27:07每日论坛发贴之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之广夏
日期:2016-03-28 16:20:51程序设计版块每日发帖之星
日期:2016-04-09 06:20:00CU十四周年纪念徽章
日期:2016-05-03 09:35:1415-16赛季CBA联赛之天津
日期:2016-11-18 08:31:3115-16赛季CBA联赛之山西
日期:2016-12-07 16:29:5315-16赛季CBA联赛之八一
日期:2017-01-10 11:34:3415-16赛季CBA联赛之吉林
日期:2017-03-30 22:51:1915-16赛季CBA联赛之广夏
日期:2017-04-13 20:51:52程序设计版块每日发帖之星
日期:2016-01-27 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
10 [报告]
发表于 2015-04-25 01:06 |只看该作者
本帖最后由 Windows19 于 2015-04-25 01:07 编辑

回复 6# A_Traveler


  大神


发现一个问题就是当相同符号连续出出现时会取不出来

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP