所以我的数据看起来像这样
chr1 169845117 169845232 - ENSG00000000457.9_exNb11
chr1 169847773 169847960 - ENSG00000000457.9_exNb12
chr1 169771760 169771866 + ENSG00000000460.12_exNb4
chr1 169772308 169772450 + ENSG00000000460.12_exNb5
chr6 41046766 41046903 + ENSG00000001167.10_exNb2
chr6 41051783 41051931 + ENSG00000001167.10_exNb4
chr6 41057316 41057449 + ENSG00000001167.10_exNb5
chr6 41057941 41058048 + ENSG00000001167.10_exNb6
chr6 41059265 41059433 + ENSG00000001167.10_exNb7
chr6 41060649 41060824 + ENSG00000001167.10_exNb8
chr6 41062133 41062236 + ENSG00000001167.10_exNb9
chr6 46097728 46097926 + ENSG00000001561.6_exNb1
我想删除第5列中exNb字符串末尾的行,例如上面的最后一行。可能有一个awk或sed选项可以让我这样做,但由于我对这两种语言都没有经验,我希望有人可以帮助我,我不确定这有多复杂。
编辑:所需的结果如下
chr1 169845117 169845232 - ENSG00000000457.9_exNb11
chr1 169847773 169847960 - ENSG00000000457.9_exNb12
chr1 169771760 169771866 + ENSG00000000460.12_exNb4
chr1 169772308 169772450 + ENSG00000000460.12_exNb5
chr6 41046766 41046903 + ENSG00000001167.10_exNb2
chr6 41051783 41051931 + ENSG00000001167.10_exNb4
chr6 41057316 41057449 + ENSG00000001167.10_exNb5
chr6 41057941 41058048 + ENSG00000001167.10_exNb6
chr6 41059265 41059433 + ENSG00000001167.10_exNb7
chr6 41060649 41060824 + ENSG00000001167.10_exNb8
chr6 41062133 41062236 + ENSG00000001167.10_exNb9
答案 0 :(得分:2)
awk -F\\t '$5 ~ /1$/ {next} {print}'
如果可能存在尾随空白,那么您可能希望使用/1 *$/
作为正则表达式来强制执行上述操作。如果您的文件非常简单,那么您可以使用grep -v '1$'
(或grep -v '1 *$'
)等等。
当然,如果标准是基于所有尾随数字的数值,那么您必须进行调整。 (在这种情况下,你必须考虑" 01"," 1E0"," 1.0"," 0.1e1&#34 ;等等。)