【发布时间】:2016-04-02 07:06:18
【问题描述】:
在下面的input 文件中,我使用awk 打印出blank 在$5 中的行。 awk 确实运行并输出结果,但它是整个输入文件,而不仅仅是空白行。我的awk 版本是GNU 4.0.1。谢谢你:)
输入
chr6 32945523 32945792 chr6:32945523-32945792 BRD2-351|gc=50
chr6 32945892 32946175 chr6:32945892-32946175 BRD2-352|gc=53.5
chr6 32946856 32946981 chr6:32946856-32946981
chr6 32947594 32947919 chr6:32947594-32947919 BRD2-354|gc=51.2
想要的结果
chr6 32946856 32946981 chr6:32946856-32946981
awk
cat input | awk 'BEGIN {FS="\t"} $5=="" {print}'
电流输出
cat input | awk 'BEGIN {FS="\t"} $5=="" {print}'
chr6 32945523 32945792 chr6:32945523-32945792 BRD2-351|gc=50
chr6 32945892 32946175 chr6:32945892-32946175 BRD2-352|gc=53.5
chr6 32946856 32946981 chr6:32946856-32946981
chr6 32947594 32947919 chr6:32947594-32947919 BRD2-354|gc=51.2
chr6 32948108 32948251 chr6:32948108-32948251 BRD2-355|gc=43
编辑:下面的awk 有效,但我不知道为什么原来没有
awk '$5==""' input
【问题讨论】:
-
代替测试 NF==4
-
你的程序对我来说很好——你确定你的字段是制表符分隔的吗?此外,如果您愿意,可以将其写成更短的
awk 'BEGIN {FS="\t"} !$5'。而且由于您的字段似乎没有内部空格,awk '!$5'可能也会这样做。 -
awk '!$5'将失败,如果$5中的任何内容以数值计算为零。 @Chris 进行调试,运行此脚本:tr '\t' '#' < input并编辑您的问题以显示输出的内容。
标签: awk