+ -
当前位置:首页 → 问答吧 → 请教排序问题,谢谢!

请教排序问题,谢谢!

时间:2011-01-08

来源:互联网

gi_68349618_gb_AAGK01000009        genscan        mRNA        4239        7909        .        +        .        ID=G000001;Type=multi-exon;
gi_68349618_gb_AAGK01000009        genscan        CDS        4239        4335        0.841        +        0        Parent=G000001;
gi_68349618_gb_AAGK01000009        genscan        CDS        7701        7909        0.648        +        1        Parent=G000001;
gi_68349618_gb_AAGK01000009        genscan        mRNA        14356        25124        .        +        .        ID=G000002;Type=multi-exon;
gi_68349618_gb_AAGK01000009        genscan        CDS        14356        15547        0.034        +        0        Parent=G000002;
gi_68349618_gb_AAGK01000009        genscan        CDS        19052        19308        0.053        +        1        Parent=G000002;
gi_68349618_gb_AAGK01000009        genscan        CDS        20610        20805        0.263        +        0        Parent=G000002;
gi_68349618_gb_AAGK01000009        genscan        CDS        24220        25124        0.447        +        1        Parent=G000002;
gi_68349663_gb_AAGK01000008        genscan        mRNA        425        8733        .        -        .        ID=G000003;Type=multi-exon;
gi_68349663_gb_AAGK01000008        genscan        CDS        425        1814        0.997        -        1        Parent=G000003;
gi_68349663_gb_AAGK01000008        genscan        CDS        2193        4077        0.827        -        2        Parent=G000003;
gi_68349663_gb_AAGK01000008        genscan        CDS        4493        6295        0.547        -        2        Parent=G000003;
gi_68349663_gb_AAGK01000008        genscan        CDS        6711        8733        0.288        -        0        Parent=G000003;
gi_68349663_gb_AAGK01000008        genscan        mRNA        8878        10926        .        -        .        ID=G000004;Type=sigle-exon;
gi_68349663_gb_AAGK01000008        genscan        CDS        8878        10926        0.999        -        0        Parent=G000004;


请问如何使得每一行按照第四列数字由小到大排列???

作者: havocor   发布时间: 2011-01-08

文本内容多的话,用perl做效率低。可以用数据库来排序。

作者: 兰花仙子   发布时间: 2011-01-08

  1. open my $fh,"<","your_file.txt";
  2. my @lines = sort {(split /\s+/,$a)[3] <=> (split /\s+/,$b)[3]} <$fh>;
复制代码
适合几万行或者十几万行吧。

作者: wxlfh   发布时间: 2011-01-08

回复 兰花仙子


    。。。请问具体如何?

作者: havocor   发布时间: 2011-01-08

回复 wxlfh


    请问$a , $b 是神马来的???

作者: havocor   发布时间: 2011-01-08



QUOTE:
适合几万行或者十几万行吧。
wxlfh 发表于 2011-01-08 17:34




    十几万... 恐怕这是史上最慢的排序法。

作者: 兰花仙子   发布时间: 2011-01-08

  1. system"sort -k 4,4n infile > outfile";
复制代码

作者: nb509   发布时间: 2011-01-08