免费注册 查看新帖 |

Chinaunix

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

求解决!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-02 13:31 |只看该作者 |倒序浏览
请教大家,如下有一个文本:

a 1 1 2 2 3 3
b 4 4 5 5 6 6
c 7 7 8 8 9 9
d 0 0 7 8 8 9

通过转置,想得到下面的结果:

a b c d
1 1 4 4 7 7 0 0
2 2 5 5 8 8 7 8
3 3 6 6 9 9 8 9

不知道该怎么解决呢?

论坛徽章:
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
2 [报告]
发表于 2013-12-02 14:05 |只看该作者
本帖最后由 yestreenstars 于 2013-12-02 14:05 编辑
  1. #!/usr/bin/perl
  2. use 5.010;

  3. while (<DATA>) {
  4.         split;
  5.         $a[0] = defined $a[0] ? $a[0] . " " . $_[0] : $_[0];
  6.         for ($i=2;$i<@_;$i+=2) {
  7.                 $t = $_[$i-1] . " " . $_[$i];
  8.                 $a[$i/2] = defined $a[$i/2] ? $a[$i/2] . " " . $t : $t;
  9.         }
  10. }

  11. END {
  12.         for ($i=0;$i<@a;$i++) {
  13.                 say $a[$i];
  14.         }
  15. }

  16. __DATA__
  17. a 1 1 2 2 3 3
  18. b 4 4 5 5 6 6
  19. c 7 7 8 8 9 9
  20. d 0 0 7 8 8 9
复制代码

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
3 [报告]
发表于 2013-12-02 14:10 |只看该作者
{:2_172:}
  1. my @data;
  2. my $space = ' ';
  3. while (<DATA>) {
  4.     my @line = split;
  5.     push @{ $data[0] }, shift @line;
  6.     my $i = 1;
  7.     while ( my @element = splice @line, 0, 2 ) {
  8.         push @{ $data[ $i++ ] }, @element;
  9.     }
  10. }
  11. say join $space, @$_ for @data;

  12. __DATA__
  13. a 1 1 2 2 3 3
  14. b 4 4 5 5 6 6
  15. c 7 7 8 8 9 9
  16. d 0 0 7 8 8 9
复制代码
回复 1# 我收点倦


   

论坛徽章:
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
4 [报告]
发表于 2013-12-02 14:23 |只看该作者
回复 3# pitonas
这思路不错~

   

论坛徽章:
0
5 [报告]
发表于 2013-12-02 14:39 |只看该作者
本帖最后由 我收点倦 于 2013-12-02 14:51 编辑

回复 3# pitonas
十分感谢大侠,思路超赞,不过是不是再加上一个换行符结果就perfect了!!

这只是我的愚见,不知道说的对不对。
   

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
6 [报告]
发表于 2013-12-02 16:20 |只看该作者
本帖最后由 pitonas 于 2013-12-02 09:24 编辑

{:2_172:}
小伙伴们, 这个愚见是不对的。
say = 加上一个换行符了

回复 5# 我收点倦


   

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
7 [报告]
发表于 2013-12-02 16:23 |只看该作者
谢谢大神赞美
回复 4# yestreenstars


   

论坛徽章:
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
8 [报告]
发表于 2013-12-02 16:26 |只看该作者
回复 7# pitonas
在这个版块我只是一只菜菜菜鸟~

   

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
9 [报告]
发表于 2013-12-02 16:33 |只看该作者
大神真是超谦虚的{:2_172:}
回复 8# yestreenstars


   

论坛徽章:
0
10 [报告]
发表于 2013-12-03 17:00 |只看该作者
回复 6# pitonas
好吧,大侠,原谅我不认识这个say吧!
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP