user-pic

合并排序问题

Vote 0 Votes

不好意思,编了一个类似检索的程序,目前输出遇到了问题。想请教一下。
比如说我有两个输出文件,a和b,内容分别如下
a的内容为
##2
There are 2 entities.
##1
There is 1 entity.
b的内容为
##2
Tomorrow is another day.
##1
What a nice day!
我现在要把这两个文件合并成一个文件,输出为
##2
There are 2 entities.
Tomorrow is another day.
##1
There is 1 entity.
What a nice day!
也就是说,读取两个文件,遇到##2的话就把##2下面的句子提取出来放到一起,然后所有的##2下面的句子处理完了之后,再找到##1下面的句子放到一起。
如果用perl的话,怎么来实现?

1 Reply

| Add a Reply
  • 其实就是你的思路,读出来再分析而已。

    简单如下:


    #! /usr/bin/perl
    use strict;
    my $hash = {};
    readfile("1.txt");
    readfile("2.txt");
    open(fh,">c.txt");
    for (keys(%$hash)) {
       print fh "$_ \n"  ;
       for (@{$hash->{$_}}) {print fh "$_ \n";}
    }
    close fh;


    sub readfile
    {
      my $file = shift;
      my $key;
      open(fh,"$file");
      while (<fh>)
      {
         if (/(^\##\d)/) {$key=$1; next;}
         push @{$hash->{$key}}, $_;
       }
     close fh;
    }

Add a Reply

Forum Groups

Good Perl Books

Perl 學習手札

作者:簡信昌

Perl 學習手札 , 一本优秀的中文Perl在线学习资料。

Perl 程序讨论区

12 50

Last Topic: [注意]本区文章归档区 by 路杨 on Oct 16, 2006

事物处理及其他

113 1410

Last Topic: 踩个脚印 by 眼睛oo on Dec 4, 2010

测试私密区

测试私密区

18 88

Notice: 用于测试程序或者不可告人之秘密。不要问我要密码哦。。[此为原LB_ES论坛系统保留项,只限原有权限朋友进入,不再接受注册]

OpenID accepted here Learn more about OpenID