根据awk中字段的值隔离行

时间:2018-12-22 11:12:01

标签: awk

我有一个像这个小例子的文本文件:

小例子:

chr1    HAVANA  exon    13221   13374
chr1    HAVANA  exon    13453   13670
chr1    HAVANA  gene    14363   29806

我正在尝试根据第3列过滤行。实际上,如果第三列是基因,我将保留整行并过滤掉其他行。这是预期的输出:

预期输出:

chr1    HAVANA  gene    14363   29806

我正在尝试使用以下命令在awk中执行此操作,但结果为空。你知道如何解决吗?

awk '{ if ($3 == 'gene') { print } }' infile.txt > outfile.txt

1 个答案:

答案 0 :(得分:4)

在脚本中使用双引号:

$ awk '{ if ($3 == "gene") { print } }' file
chr1    HAVANA  gene    14363   29806

或:

$ awk '{ if ($3 == "gene") print }' file

但是您可以:

$ awk '$3 == "gene"'