免费注册 查看新帖 |

Chinaunix

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

[文本处理] 怎么提取这些数据 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-11-12 15:10 |只看该作者 |倒序浏览
怎么把第二列数据去掉,之后保留文子和最后一列数字
如文档:
广州白云万达,白云,万达,1000,广州,500,1500
广州白云万达广场,广州白云,万达,1000,广场,800,广州,500,2300
广州时尚正佳,时尚正佳,广州,500,500
时尚天河广场,时尚,广场,800,天河,600,1400
万达广场,广场,万达,1000,广场,800,1800
正佳广场,正佳,广场,800,800

处理之后的结果
广州白云万达,万达,广州,1500
广州白云万达广场,万达,广场,广州,2300
广州时尚正佳,广州,500
时尚天河广场,广场,天河,1400
万达广场,万达,广场,1800
正佳广场,广场,800

谢谢大神们指点

论坛徽章:
6
2015亚冠之广州恒大
日期:2015-05-25 15:01:512015亚冠之大阪钢巴
日期:2015-11-09 21:04:562015亚冠之山东鲁能
日期:2015-11-11 14:30:3215-16赛季CBA联赛之山西
日期:2016-03-11 11:11:5215-16赛季CBA联赛之江苏
日期:2016-04-06 10:48:4915-16赛季CBA联赛之北控
日期:2016-11-09 10:23:22
2 [报告]
发表于 2015-11-12 15:47 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
3 [报告]
发表于 2015-11-12 15:49 |只看该作者
如果在不确定有多少列的情况呢回复 2# leijskg


   

论坛徽章:
50
15-16赛季CBA联赛之广夏
日期:2018-11-05 09:42:462015年亚冠纪念徽章
日期:2015-07-23 11:58:122015亚冠之广州富力
日期:2015-07-07 08:26:172015亚冠之塔什干棉农
日期:2015-06-29 09:08:072015年亚洲杯之伊朗
日期:2015-03-08 20:51:012015年迎新春徽章
日期:2015-03-04 09:58:11未羊
日期:2014-10-16 22:41:47处女座
日期:2014-10-16 15:33:33酉鸡
日期:2014-03-13 12:54:10巳蛇
日期:2014-03-10 14:39:052015亚冠之德黑兰石油
日期:2015-07-29 12:46:372015亚冠之德黑兰石油
日期:2015-08-07 12:54:11
4 [报告]
发表于 2015-11-12 16:01 |只看该作者
  1. awk -F, '{for(i=1;i<=NF-1;i++)if($i ~ /[0-9]/)$i=="";else printf $i",";print $NF}'
复制代码

论坛徽章:
12
IT运维版块每日发帖之星
日期:2015-11-17 06:20:00程序设计版块每日发帖之星
日期:2016-01-19 06:20:0015-16赛季CBA联赛之江苏
日期:2016-01-17 15:31:3915-16赛季CBA联赛之上海
日期:2016-01-16 15:44:3015-16赛季CBA联赛之浙江
日期:2016-01-15 20:38:1815-16赛季CBA联赛之北京
日期:2016-01-09 14:30:15CU十四周年纪念徽章
日期:2016-01-07 12:31:5115-16赛季CBA联赛之四川
日期:2016-01-01 11:49:1515-16赛季CBA联赛之深圳
日期:2015-12-24 14:23:4115-16赛季CBA联赛之山西
日期:2015-12-15 16:22:31技术图书徽章
日期:2015-12-10 17:41:0015-16赛季CBA联赛之北控
日期:2016-02-03 10:03:24
5 [报告]
发表于 2015-11-12 16:01 |只看该作者
本帖最后由 sync_1521 于 2015-11-12 16:12 编辑

awk '{sub(/,[^,]*/,"");gsub(/[0-9]+,/,"")}1' file
sed 's/,[^,]*//1;s/[0-9]\+,//g' file

论坛徽章:
0
6 [报告]
发表于 2015-11-12 16:35 |只看该作者
谢谢!!!回复 4# WilliBhamlll


   

论坛徽章:
0
7 [报告]
发表于 2015-11-12 16:36 |只看该作者
谢谢~~~回复 5# sync_1521


   

论坛徽章:
0
8 [报告]
发表于 2015-11-12 16:50 |只看该作者
awk -F, '{for(i=1;i<=NF;i+=2)printf  $i","}{print ""}'   file

论坛徽章:
0
9 [报告]
发表于 2015-11-12 17:25 |只看该作者
如果是这样  
200 最具价值中国品牌,品牌,200
500 左岭新城,新城,500
怎么把后面的数字不要
处理的结果为
200 最具价值中国品牌,品牌
500 左岭新城,新城

回复 8# by917611


   

论坛徽章:
0
10 [报告]
发表于 2015-11-12 19:10 |只看该作者
WilliBhamlll 发表于 2015-11-12 16:01


进牛角尖了,有点理解不了,脑子短路了。如果非0的话,先执行printf $i",  再执行 print $NF

对于第1条记录:万达广场,广场,万达,1000,广场,800,1800

第1个字段,非0,则执行:else printf $i",";print $NF

我的理解是会 打印出 万达广场,1800,  这2个字段??因为第1个字段符合条件,则执行这2个 printf $i",";print $NF
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP