免费注册 查看新帖 |

Chinaunix

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

如何将行数隔一行合并到一起 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-05-07 17:58 |只看该作者 |倒序浏览
我有个文件,行数是4的倍数,我现在想以每4行为一个单元,其中的1,3行合并为一行,2,4行合并为一行,即
1
2
3
4
输出后我为
13
24
直接合并一起,不需要换制表符啥的。

每四行都执行这样的操作,请问如何实现啊!

请问如何实现,谢谢大家!

论坛徽章:
8
双子座
日期:2013-08-31 07:37:12金牛座
日期:2013-09-09 18:49:12处女座
日期:2013-09-23 11:43:14处女座
日期:2013-10-09 19:48:21狮子座
日期:2014-03-24 18:22:12丑牛
日期:2014-04-22 22:07:51申猴
日期:2014-06-12 21:54:13双鱼座
日期:2014-06-13 21:52:31
2 [报告]
发表于 2014-05-07 20:32 |只看该作者
这样?
  1. cat 1
  2. 1
  3. 2
  4. 3
  5. 4
  6. perl -lne '$.%2==0 ? push @n1,$_ : push @n2,$_;END{print @n2,"\n",@n1}' 1
  7. 13
  8. 24
复制代码
回复 1# chenjiali1


   

论坛徽章:
6
丑牛
日期:2014-03-21 15:42:04子鼠
日期:2014-04-12 11:50:17处女座
日期:2014-09-01 09:25:1115-16赛季CBA联赛之吉林
日期:2015-12-22 14:01:5215-16赛季CBA联赛之广东
日期:2016-03-08 18:49:422016科比退役纪念章
日期:2016-07-06 12:19:55
3 [报告]
发表于 2014-05-07 22:10 |只看该作者
这样有歧义哦,能举个8行的例子吗?

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-06-12 06:20:00
4 [报告]
发表于 2014-05-08 14:58 |只看该作者
本帖最后由 yakczh_cu 于 2014-05-08 14:59 编辑

回复 3# stanley_tam

  1. use 5.01;
  2. use strict;
  3. my $i=0;
  4. my @line=([],[]);
  5. while(<DATA>){
  6.    chop;
  7.        
  8.         if ($i %  2 eq  0 ){
  9.                   push $line[0],$_;
  10.         }else {
  11.                   push $line[1],$_;
  12.         }
  13.          
  14.         if  (++$i gt 3) {
  15.           foreach my $item (@line){
  16.                       print @$item,"\n";
  17.           }
  18.                   
  19.           $i=0;
  20.           @line=([],[]);
  21.         }

  22. }




  23. __DATA__
  24. 1
  25. 2
  26. 3
  27. 4
  28. 5
  29. 6
  30. 7
  31. 8

复制代码

论坛徽章:
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
5 [报告]
发表于 2014-05-08 15:15 |只看该作者
这样?
  1. while (<DATA>) {
  2.     my ( $l2, $l3, $l4 ) =
  3.       ( scalar <DATA>, scalar <DATA>, scalar <DATA> );
  4.     chomp( $_, $l2 );
  5.     print $_, $l3, $l2, $l4;
  6. }

  7. __DATA__
  8. 1
  9. 2
  10. 3
  11. 4
  12. 5
  13. 6
  14. 7
  15. 8
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP