在一列中打印具有给定单词的所有行?

时间:2016-04-12 19:02:05

标签: shell awk

我有一个包含8列和几百万行的文本文件,如下所示:

CHR           SNP         BP   A1       TEST    NMISS       BETA         STAT            P 
   1      1:693731     693731    G        ADD      333   -0.02795       -0.365       0.7154
   1      1:693731     693731    G        pc1      333     -1.369       -1.268       0.2058
   1      1:693731     693731    G        pc2      333    -0.2801      -0.2592       0.7957

我想在'TEST'列(第5列)中创建一个包含所有'ADD'行的新文件。我试过用awk做这个:

awk '$5==ADD' infile.txt > outfile.txt

这产生了一个空白文本文档。如何才能实现这一目标?任何意见都将不胜感激。

1 个答案:

答案 0 :(得分:3)

ADD不是变量,因此您需要引用它:

awk '$5=="ADD"' infile.txt > outfile.txt

或者将其变为变量:

awk -v var="ADD" '$5==var' infile.txt > outfile.txt