免费注册 查看新帖 |

Chinaunix

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

perl 格式化显示 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-12-16 16:48 |只看该作者 |倒序浏览

大神们好,有个数据格式化显示的问题搞不定,麻烦大家帮忙一下。

具体数据如下:

--data--
aa: 上海市儿童医院 bb: 上XX路1400弄24号 cc:  021-62474880(总机) dd: 呼吸科 ee: 国营 ff: http://www.shchildren.com.cn
aa: 上海长征医院 bb: 上XX415号 cc:  021-81886999(总机);021-63586818,63586828(咨询) dd: 心血管内科 ee: 国营 gg: 021-63520020 hh: 1@1.cn
aa: 复旦XX bb: XX180号(住院部) cc:  021-64041990(总机);64041990-2008,2009,2010(预约) dd: 病理科、核医学科 ee: 国营 ff: http://www.zs-hospital.sh.cn
aa: 上海市第一XX bb: 浦西总院: cc:  021-54035206(浦西总院);021-58838888(浦东分院) dd: 新生儿科 ee: 国营 ff: http://www.51mch.com
aa: 上海市精神卫生中心 bb: 总院:XX号 cc:  021-64387250,34289888(总院);021-64901737(分院) dd: 急重症病房 ee: 国营 gg: 200030 ff: http://www.smhc.org.cn/
aa: 上海交通XX bb: 上海市1665号 cc:  021-55571133(预约挂号);021-25078999(总机);021-69692701(崇明分院) dd: 皮肤科、临床营养科 ee: 国营 hh: webmaster@xinhuamed.com.cn ff: http://www.xinhuamed.com.cn/Web/FirstPage.aspx
aa: 上海中XX(龙华医院) bb: 上海725号 cc:  021-64385700(总机) dd: 儿科 ee: 国营 gg: 021-64398310 hh: longhua@longhua.net(全院) ff: http://www.longhua.net

想要的结果是这样的,
aa                         bb                         cc                                    dd            ee                  ff                                                       gg                        hh
上海市儿童医院        上XX路1400弄24号   021-62474880(总机)      呼吸科       国营                 http://www.shchildren.com.cn               
上海长征医院           上XX415号              021-81886999(总机);   心血管内科  国营                http://www.shczyy.com                      021-63520020       1@1.cn



论坛徽章:
0
2 [报告]
发表于 2016-12-16 16:52 |只看该作者
想到的方法是要用到hash,但是我技术能力,半天,因为有中文的原因,显示的结果不对。大神帮忙啊。

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
3 [报告]
发表于 2016-12-16 17:52 |只看该作者
  1. perl format.pl | column -t
复制代码

论坛徽章:
0
4 [报告]
发表于 2016-12-16 17:54 |只看该作者
回复 3# sunzhiguolu

没有代码吗?我现在认为是使用hash或数据,但是不知道怎么来定位数据的位置。

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
5 [报告]
发表于 2016-12-16 18:14 |只看该作者
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use utf8;

  5. binmode (STDOUT, ':encoding(utf8)');
  6. print join ("\t", 'aa', 'bb', 'cc', 'dd', 'ee', 'ff'), "\n";
  7. while (<DATA>){
  8.     s/[a-z]+://g;
  9.     print;
  10. }

  11. __DATA__
  12. aa: 上海市儿童医院 bb: 上XX路1400弄24号 cc:  021-62474880(总机) dd: 呼吸科 ee: 国营 ff: http://www.shchildren.com.cn
  13. aa: 上海长征医院 bb: 上XX415号 cc:  021-81886999(总机);021-63586818,63586828(咨询) dd: 心血管内科 ee: 国营 gg: 021-63520020 hh: 1@1.cn
  14. aa: 复旦XX bb: XX180号(住院部) cc:  021-64041990(总机);64041990-2008,2009,2010(预约) dd: 病理科、核医学科 ee: 国营 ff: http://www.zs-hospital.sh.cn
  15. aa: 上海市第一XX bb: 浦西总院: cc:  021-54035206(浦西总院);021-58838888(浦东分院) dd: 新生儿科 ee: 国营 ff: http://www.51mch.com
  16. aa: 上海市精神卫生中心 bb: 总院:XX号 cc:  021-64387250,34289888(总院);021-64901737(分院) dd: 急重症病房 ee: 国营 gg: 200030 ff: http://www.smhc.org.cn/
  17. aa: 上海交通XX bb: 上海市1665号 cc:  021-55571133(预约挂号);021-25078999(总机);021-69692701(崇明分院) dd: 皮肤科、临床营养科 ee: 国营 hh: webmaster@xinhuamed.com.cn ff: http://www.xinhuamed.com.cn/Web/FirstPage.aspx
  18. aa: 上海中XX(龙华医院) bb: 上海725号 cc:  021-64385700(总机) dd: 儿科 ee: 国营 gg: 021-64398310 hh: longhua@longhua.net(全院) ff: http://www.longhua.net
复制代码


perl format.pl | column -t

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
6 [报告]
发表于 2016-12-16 18:14 |只看该作者
回复 4# xiaomifeng789
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use utf8;

  5. binmode (STDOUT, ':encoding(utf8)');
  6. print join ("\t", 'aa', 'bb', 'cc', 'dd', 'ee', 'ff'), "\n";
  7. while (<DATA>){
  8.     s/[a-z]+://g;
  9.     print;
  10. }

  11. __DATA__
  12. aa: 上海市儿童医院 bb: 上XX路1400弄24号 cc:  021-62474880(总机) dd: 呼吸科 ee: 国营 ff: http://www.shchildren.com.cn
  13. aa: 上海长征医院 bb: 上XX415号 cc:  021-81886999(总机);021-63586818,63586828(咨询) dd: 心血管内科 ee: 国营 gg: 021-63520020 hh: 1@1.cn
  14. aa: 复旦XX bb: XX180号(住院部) cc:  021-64041990(总机);64041990-2008,2009,2010(预约) dd: 病理科、核医学科 ee: 国营 ff: http://www.zs-hospital.sh.cn
  15. aa: 上海市第一XX bb: 浦西总院: cc:  021-54035206(浦西总院);021-58838888(浦东分院) dd: 新生儿科 ee: 国营 ff: http://www.51mch.com
  16. aa: 上海市精神卫生中心 bb: 总院:XX号 cc:  021-64387250,34289888(总院);021-64901737(分院) dd: 急重症病房 ee: 国营 gg: 200030 ff: http://www.smhc.org.cn/
  17. aa: 上海交通XX bb: 上海市1665号 cc:  021-55571133(预约挂号);021-25078999(总机);021-69692701(崇明分院) dd: 皮肤科、临床营养科 ee: 国营 hh: webmaster@xinhuamed.com.cn ff: http://www.xinhuamed.com.cn/Web/FirstPage.aspx
  18. aa: 上海中XX(龙华医院) bb: 上海725号 cc:  021-64385700(总机) dd: 儿科 ee: 国营 gg: 021-64398310 hh: longhua@longhua.net(全院) ff: http://www.longhua.net
复制代码
perl format.pl | column -t


论坛徽章:
0
7 [报告]
发表于 2016-12-16 22:47 |只看该作者
回复 6# sunzhiguolu

首先,谢谢,我的数据您没仔细看明白,我例出来的,aa,bb,这些数据,也许是在第1行的第2,第3的做位置,也许在第2行的第5,第7位置,还会有可以,aa在第4位有数据,BB却没有数据。这种情况,
简单点说,总列数是固定的,但是第一行的列数不固定,而且第一行这些列的位置也不固定,我现在想要整理成固定的。

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
8 [报告]
发表于 2016-12-16 23:03 |只看该作者
回复 7# xiaomifeng789
能否给个具体的示例数据, 将预期的结果贴出来?

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP