perl - 打印 bash 中第一次出现的行

标签 perl bash awk

我从初始 fasta 文件中提取了 ORF,现在我想获取每个转录本的最长 ORF。

使用 faSize 提取 ORF 的大小并按大小排序后, 我以前使用的代码是:

perl -ane'print unless $x{$F[0]}++'

这次我在使用perl命令时遇到了问题。

提取大小并对成绩单进行排序后,我得到如下内容:

Singlet_1000_61         3844 
Singlet_2000_73         3508 
Singlet_1000_62         3081 
Singlet_2000_62         3008 
Singlet_3500_48         2973 
Singlet_4000_48        2964 
Singlet_3500_54        2863

我想要的是:

Singlet_1000_61         3844 
Singlet_2000_73         3508
Singlet_3500_48         2973
...

perl 命令在这种情况下不起作用。

您对我如何使其发挥作用有什么建议吗?

或者 awk 命令?

最佳答案

如果只看

Singlet_1000_61 3844
        ^^^^

没问题,

 perl -F_ -ane'print unless $x{$F[1]}++'

如果你想看

Singlet_1000_61 3844
^^^^^^^^^^^^

然后

perl -ane'$F[0] =~ s/_[^_]*\z//; print unless $x{$F[0]}++'

关于perl - 打印 bash 中第一次出现的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16005841/

相关文章:

perl - 使用另一个数组订购哈希 perl

shell - 仅当该行与给定模式匹配时,如何删除该行的第一个字符

apache - 如何在 OS X Yosemite 上的 Apache 2.4 中安装 mod_perl 2.0.9?

sql - 与多合一表相比,使用单独的角色桥接表有哪些优势?

string - Perl中带有双冒号的奇数字符串解析

awk - FFMPEG 使用 MSVC 在 Windows 上构建 - 制作失败

shell - 从 csv 文件转换日期格式时出现 "invalid date"错误消息? - shell

bash - 如何从文本文件中获取变量到 Bash 变量

arrays - 如何在 bash 中拒绝空数组索引

linux - 如何根据多个条件将大文件 ".csv"分成小文件?