免费注册 查看新帖 |

Chinaunix

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

[正则] 行数对换与替换? [已经解决] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-03-31 09:57 |只看该作者 |倒序浏览
本帖最后由 peterdocter 于 2010-03-31 23:20 编辑

325路(光明总站-皇岗口岸)
运营时间:皇岗6:00-22:15光明5:50-21:30
票价:上车2元,全程9元
往程:光明总站-捷达厂-光明酒楼-光明客运站-光明老医院-大通工业城-光明学校-楼村-民生工业城-民联广场-上辇-上村下辇-公明派出所-公明综合市场-佳华-公明汽车站(邮电局`广场)-公明交管站-公明医院-绿晶酒店-将石村-东坑路口-塘尾村-公明公路征费-万丰工业区(公明)-田寮路口-田寮加油站-长圳村-玉律村-石岩湖路口-径贝村(石岩)-石岩汽车站-石岩成人学校-河滨花园-罗租村-变电站-山城工业区-台湾工业区-塘头路口-应人石村-阳光工业区-南岗工业区-白芒检查站-白芒村-荔枝世界-西丽果场-报恩福地-官龙村口-高职院-九祥岭-西丽医院东-西丽体育公园-珠光村-龙辉花园-新屋村-收容教育所-桃源村-桃源村东-沙河建工村-华侨城医院-侨城东路口-园博园北门-鸿新花园-经济犯罪侦察局-翠海花园-金地网球中心-枫丹雅苑-特发小区-景田沃尔玛-宏浩花园-龙塘-市政大厦-鲁班大厦-华强职校-投资大厦-市民广场东-岗厦西-岗厦-福田新村-皇岗口岸
返程:皇岗口岸-福华新村-岗厦-市民广场东-广电大厦-华强职校-鲁班大厦-市政大厦-龙塘-宏浩花园-景田沃尔玛-特发小区-枫丹雅苑-金地网球中心-翠海花园-经济犯罪侦察局-鸿新花园-侨城东路口-华侨城医院-香年广场-沙河建工村-桃源村东-桃源村-收容教育所-新屋村-龙辉花园-珠光村-西丽体育公园-西丽医院东-西丽职校-西丽医院东-九祥岭-高职院-官龙村口-西丽果场-荔枝世界-白芒村-白芒检查站-南岗工业区-阳光工业区-应人石村-塘头路口-台湾工业区-山城工业村-变电站-罗租村-河滨花园-石岩成人学校-石岩汽车站-径贝村(石岩)-石岩湖路口-玉律村-长圳村-田寮加油站-田寮路口-万丰工业区(公明)-公明公路征费-塘尾村-东坑路口-蒋石村-绿晶酒店-公明医院-公明交管站-宝明城路口-公明汽车站(广场邮电局)-佳华-公明综合市场-公明派出所-上村下辇-上辇-民联广场-民生工业城-楼村-光明学校-大通工业城-光明油站-光明老医院-光明客运站-光明酒楼-捷达厂-光明总站
324路(石凹水库-南头总站)
运营时间:5:30-21:30
票价:上车2元,全程7元
往程:石凹水库-新围路口-大船坑-水围新村-大浪街道办-万盛百货-英泰工业区-三联居委-龙华天虹商场-龙华市场-龙华街道办-龙华地税-华富市场-龙华人民医院-龙华广场-共和新村-瓦窑排村-富士康-油富商场-惠万家-油松-万众城-牛栏前-沙吓-水尾-东边(民治村委)-沙元埔(民治小学)-民康路口-横岭工业区(潜龙花园)-横岭村-惠鑫公寓-梅林检查站-福田党校②-万科大厦-梅林医院-上梅林市场-梅林三村东-梅林三村-梅林二村-梅林一村①-下梅林市场①-景鹏大厦-景新花园①-景秀中学-龙塘-香蜜二村-香梅路口-深南香蜜立交-招商银行大厦-交通局-锦绣中华-世界之窗-白石洲-大冲-科技园-深大北门①-南山文体中心-南山医院-深发展南头支行-南贸市场-南山法院-南新路口-南头总站
返程:南头总站-南新路口-南山法院-南贸市场-深发展南头支行-南山医院-南山文体中心-深大北门①-科技园-大冲-白石洲-世界之窗-锦绣中华-交通局-招商银行大厦-深南香蜜立交-香梅路口-香蜜二村-龙塘-景秀中学-景新花园①-景鹏大厦-下梅林市场①-梅林一村①-梅林二村-梅林三村-上梅林市场-梅林医院-万科大厦-凯丰路北-梅林检查站-惠鑫公寓-横岭村-横岭工业区(潜龙花园)-民康路口-沙元埔(民治小学)-东边(民治村委)-水尾-沙吓-牛栏前-万众城-油松-惠万家-油富商场-富士康-瓦窑排村-共和新村-龙华广场-龙华人民医院-华富市场-龙华地税-龙华街道办-龙华市场-龙华天虹商场-三联居委-益家百货-英泰工业区-万盛百货-大浪街道办-水围新村-大船坑-新围路口-石凹水库
备注:车次很少

第一要求
备注: 替换上一行回车为:

324路(石凹水库-南头总站)
运营时间:5:30-21:30
票价:上车2元,全程7元
往程:石凹水库-新围路口-大船坑-水围新村-大浪街道办-万盛百货-英泰工业区-三联居委-龙华天虹商场-龙华市场-龙华街道办-龙华地税-华富市场-龙华人民医院-龙华广场-共和新村-瓦窑排村-富士康-油富商场-惠万家-油松-万众城-牛栏前-沙吓-水尾-东边(民治村委)-沙元埔(民治小学)-民康路口-横岭工业区(潜龙花园)-横岭村-惠鑫公寓-梅林检查站-福田党校②-万科大厦-梅林医院-上梅林市场-梅林三村东-梅林三村-梅林二村-梅林一村①-下梅林市场①-景鹏大厦-景新花园①-景秀中学-龙塘-香蜜二村-香梅路口-深南香蜜立交-招商银行大厦-交通局-锦绣中华-世界之窗-白石洲-大冲-科技园-深大北门①-南山文体中心-南山医院-深发展南头支行-南贸市场-南山法院-南新路口-南头总站
返程:南头总站-南新路口-南山法院-南贸市场-深发展南头支行-南山医院-南山文体中心-深大北门①-科技园-大冲-白石洲-世界之窗-锦绣中华-交通局-招商银行大厦-深南香蜜立交-香梅路口-香蜜二村-龙塘-景秀中学-景新花园①-景鹏大厦-下梅林市场①-梅林一村①-梅林二村-梅林三村-上梅林市场-梅林医院-万科大厦-凯丰路北-梅林检查站-惠鑫公寓-横岭村-横岭工业区(潜龙花园)-民康路口-沙元埔(民治小学)-东边(民治村委)-水尾-沙吓-牛栏前-万众城-油松-惠万家-油富商场-富士康-瓦窑排村-共和新村-龙华广场-龙华人民医院-华富市场-龙华地税-龙华街道办-龙华市场-龙华天虹商场-三联居委-益家百货-英泰工业区-万盛百货-大浪街道办-水围新村-大船坑-新围路口-石凹水库,备注:车次很少


第二要求
二至三行放到最后:

324路(石凹水库-南头总站)
往程:石凹水库-新围路口-大船坑-水围新村-大浪街道办-万盛百货-英泰工业区-三联居委-龙华天虹商场-龙华市场-龙华街道办-龙华地税-华富市场-龙华人民医院-龙华广场-共和新村-瓦窑排村-富士康-油富商场-惠万家-油松-万众城-牛栏前-沙吓-水尾-东边(民治村委)-沙元埔(民治小学)-民康路口-横岭工业区(潜龙花园)-横岭村-惠鑫公寓-梅林检查站-福田党校②-万科大厦-梅林医院-上梅林市场-梅林三村东-梅林三村-梅林二村-梅林一村①-下梅林市场①-景鹏大厦-景新花园①-景秀中学-龙塘-香蜜二村-香梅路口-深南香蜜立交-招商银行大厦-交通局-锦绣中华-世界之窗-白石洲-大冲-科技园-深大北门①-南山文体中心-南山医院-深发展南头支行-南贸市场-南山法院-南新路口-南头总站
返程:南头总站-南新路口-南山法院-南贸市场-深发展南头支行-南山医院-南山文体中心-深大北门①-科技园-大冲-白石洲-世界之窗-锦绣中华-交通局-招商银行大厦-深南香蜜立交-香梅路口-香蜜二村-龙塘-景秀中学-景新花园①-景鹏大厦-下梅林市场①-梅林一村①-梅林二村-梅林三村-上梅林市场-梅林医院-万科大厦-凯丰路北-梅林检查站-惠鑫公寓-横岭村-横岭工业区(潜龙花园)-民康路口-沙元埔(民治小学)-东边(民治村委)-水尾-沙吓-牛栏前-万众城-油松-惠万家-油富商场-富士康-瓦窑排村-共和新村-龙华广场-龙华人民医院-华富市场-龙华地税-龙华街道办-龙华市场-龙华天虹商场-三联居委-益家百货-英泰工业区-万盛百货-大浪街道办-水围新村-大船坑-新围路口-石凹水库,备注:车次很少
运营时间:5:30-21:30
票价:上车2元,全程7元

第三
第一行变成这样:
324路,石凹水库,*,*,南头总站,*,*
往程:石凹水库-新围路口-大船坑-水围新村-大浪街道办-万盛百货-英泰工业区-三联居委-龙华天虹商场-龙华市场-龙华街道办-龙华地税-华富市场-龙华人民医院-龙华广场-共和新村-瓦窑排村-富士康-油富商场-惠万家-油松-万众城-牛栏前-沙吓-水尾-东边(民治村委)-沙元埔(民治小学)-民康路口-横岭工业区(潜龙花园)-横岭村-惠鑫公寓-梅林检查站-福田党校②-万科大厦-梅林医院-上梅林市场-梅林三村东-梅林三村-梅林二村-梅林一村①-下梅林市场①-景鹏大厦-景新花园①-景秀中学-龙塘-香蜜二村-香梅路口-深南香蜜立交-招商银行大厦-交通局-锦绣中华-世界之窗-白石洲-大冲-科技园-深大北门①-南山文体中心-南山医院-深发展南头支行-南贸市场-南山法院-南新路口-南头总站
返程:南头总站-南新路口-南山法院-南贸市场-深发展南头支行-南山医院-南山文体中心-深大北门①-科技园-大冲-白石洲-世界之窗-锦绣中华-交通局-招商银行大厦-深南香蜜立交-香梅路口-香蜜二村-龙塘-景秀中学-景新花园①-景鹏大厦-下梅林市场①-梅林一村①-梅林二村-梅林三村-上梅林市场-梅林医院-万科大厦-凯丰路北-梅林检查站-惠鑫公寓-横岭村-横岭工业区(潜龙花园)-民康路口-沙元埔(民治小学)-东边(民治村委)-水尾-沙吓-牛栏前-万众城-油松-惠万家-油富商场-富士康-瓦窑排村-共和新村-龙华广场-龙华人民医院-华富市场-龙华地税-龙华街道办-龙华市场-龙华天虹商场-三联居委-益家百货-英泰工业区-万盛百货-大浪街道办-水围新村-大船坑-新围路口-石凹水库,备注:车次很少
运营时间:5:30-21:30
票价:上车2元,全程7元

每条记录就是一行,其它内容格式也是样的!
最终想要效果:
变成一行
324路,石凹水库,*,*,南头总站,*,*,石凹水库-新围路口-大船坑-水围新村-大浪街道办-万盛百货-英泰工业区-三联居委-龙华天虹商场-龙华市场-龙华街道办-龙华地税-华富市场-龙华人民医院-龙华广场-共和新村-瓦窑排村-富士康-油富商场-惠万家-油松-万众城-牛栏前-沙吓-水尾-东边(民治村委)-沙元埔(民治小学)-民康路口-横岭工业区(潜龙花园)-横岭村-惠鑫公寓-梅林检查站-福田党校②-万科大厦-梅林医院-上梅林市场-梅林三村东-梅林三村-梅林二村-梅林一村①-下梅林市场①-景鹏大厦-景新花园①-景秀中学-龙塘-香蜜二村-香梅路口-深南香蜜立交-招商银行大厦-交通局-锦绣中华-世界之窗-白石洲-大冲-科技园-深大北门①-南山文体中心-南山医院-深发展南头支行-南贸市场-南山法院-南新路口-南头总站,南头总站-南新路口-南山法院-南贸市场-深发展南头支行-南山医院-南山文体中心-深大北门①-科技园-大冲-白石洲-世界之窗-锦绣中华-交通局-招商银行大厦-深南香蜜立交-香梅路口-香蜜二村-龙塘-景秀中学-景新花园①-景鹏大厦-下梅林市场①-梅林一村①-梅林二村-梅林三村-上梅林市场-梅林医院-万科大厦-凯丰路北-梅林检查站-惠鑫公寓-横岭村-横岭工业区(潜龙花园)-民康路口-沙元埔(民治小学)-东边(民治村委)-水尾-沙吓-牛栏前-万众城-油松-惠万家-油富商场-富士康-瓦窑排村-共和新村-龙华广场-龙华人民医院-华富市场-龙华地税-龙华街道办-龙华市场-龙华天虹商场-三联居委-益家百货-英泰工业区-万盛百货-大浪街道办-水围新村-大船坑-新围路口-石凹水库,
,备注:车次很少,5:30-21:30,上车2元,全程7元

这样描述应该清楚问题了吧?再补充吧!
第一个问题,就是把匹配(备注:),如:
备注:在第二行,以,隔开把一二行合并成一行
第二个问题,就是指定行放到最后。当然可以匹配运营时间:与票价:
第三个问题,每段首首行变成这样格式:324路,石凹水库,*,*,南头总站,*,*

原全部数据:GB2312
BusLines_gb2312.rar (72.54 KB, 下载次数: 11)
部分数据:UTF-8
iconv -f gb2312 -t utf-8
发现 这个工具,有很多GB文字还是不能转换!有时变成???之类或者来一个出错把剩下的内容删除!
这个就是出错只有部分转换出来!
BusLines_utf-8.rar (16.7 KB, 下载次数: 15)

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
2 [报告]
发表于 2010-03-31 10:03 |只看该作者
这种描述错别字很多,看得累。

希望大家以后注意自己的措辞,起码要检查一遍吧。这样可以节省大家的时间。

论坛徽章:
0
3 [报告]
发表于 2010-03-31 10:18 |只看该作者
至少要贴2块数据才能看出块和块之间是怎么分隔的,是空行分隔还是别的

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
4 [报告]
发表于 2010-03-31 10:35 |只看该作者
大家都不愿意写啊。

我来猜猜
  1. awk -v RS= -F '\n[^\n]*:' -v OFS=, '{sub(/(/,",",$1);sub(/-/,",*,*,",$1);sub(/)/,",*,*",$1);print $1,$4,$5",备注:"$6,$2,$3}' urfile
复制代码
假设以空行分隔每路"公车"。

论坛徽章:
0
5 [报告]
发表于 2010-03-31 10:53 |只看该作者
本帖最后由 ywlscpl 于 2010-03-31 11:01 编辑
  1. awk -v RS='[0-9]+路' -v OFS=, '{split($1,m1,"[()-]");split($2,m2,":");split($3,m3,":");split($4,m4,":");split($5,m4,":");print v,m1[2],"*,*",m1[3],"*,*",m4[2],m5[2],$6,m2[2],m3[2];v=RT}' file
复制代码
每路第一行肯定是xxx路吧

论坛徽章:
0
6 [报告]
发表于 2010-03-31 11:05 |只看该作者
大家都不愿意写啊。

我来猜猜假设以空行分隔每路"公车"。
blackold 发表于 2010-03-31 10:35


大师还有吃行问题,而且吃了很多最后只剩下两行符合要求!不过多谢大师首次出手!我上载部分数据吧!

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
7 [报告]
发表于 2010-03-31 11:11 |只看该作者
回复 6# peterdocter


    我的代码是假设"路线“以空行分隔。

论坛徽章:
0
8 [报告]
发表于 2010-03-31 11:11 |只看该作者
本帖最后由 peterdocter 于 2010-03-31 11:18 编辑
每路第一行肯定是xxx路吧
ywlscpl 发表于 2010-03-31 10:53


不一定,还有快线,干线,地铁之类!
为什么我把第一行的问题放到最后,也就是这个原因!
把其它行合并与替换或对调,让每段都变成这样:

317路区间A(滢水山庄-经济大厦)
往程:滢水山庄-梅林检查站-梅龙天桥-市二医院①-华强中-经济大厦
返程:经济大厦-华强中-市二医院①-梅龙天桥-梅林检查站-滢水山庄,备注:7:30、7:50从滢水山庄发两班车
运营时间:7:30,7:50
票价:一票制2元

所有的内容都以5行为标准,这要第一行就固定一下来!
还有备注标签是不定数,有的有有的没有!

论坛徽章:
0
9 [报告]
发表于 2010-03-31 11:12 |只看该作者
给出典型性数据吧

论坛徽章:
0
10 [报告]
发表于 2010-03-31 11:14 |只看该作者
本帖最后由 ywlscpl 于 2010-03-31 11:17 编辑

鉴于你每路第一行的不确定性及最后一行备注有无的不确定性,建议你生成数据时每路后加一个空行,方便后期处理
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP