如果第5列包含句点,则打印awk

时间:2017-05-30 20:13:52

标签: bash awk

我想识别那些在它的第5列上有句号(。)的行,并将第3列作为输出,因为我有标记来识别行。我想出了这个:

awk '{if ($5 = ".") {print $3}}' file.vcf

但是我的文件最初有42行,而这个结果有60行,所以我的代码显然有问题。

wc -l file.vcf
  42
awk '{if ($5 = ".") {print $3}}' file.vcf | wc -l
  60

所以,期望的输出:具有第三列内容的列表(我的行的名称标签),以便识别哪些行具有句号"。"在第5栏。

有什么想法?谢谢! (我在macOSsierra终端上,顺便说一下。)

1 个答案:

答案 0 :(得分:2)

尝试:

awk '{if  ( $5 ~ /\./ ) { print $3} }' file.vcf

基本上,检查第五列是否包含句点(。);如果是,请打印第三列