根据bash中的特定列过滤大文件

时间:2017-07-20 14:26:35

标签: bash

我有一个> 100米行的文件,想要按照某些标准对其进行过滤:

$ wc -l s1bam.bed 
104797540 s1bam.bed

$ head -n 3 s1bam.bed 
chr1    14688   14979   NB501800:50:H3NW5BGX3:2:22310:19560:5036/1  3   +
chr1    14688   14979   NB501800:50:H3NW5BGX3:3:13501:3458:17919/1  3   +
chr1    14727   15018   NB501800:50:H3NW5BGX3:2:22310:19560:5036/2  3   -

我想要输出的是第五个字段值>=20!=255(例如右边的第二个字段)。如何在Bash中实现它?

1 个答案:

答案 0 :(得分:3)

您可以使用awk:

awk '$5 >= 20 && $5 != 255' file