在下面的input
文件中,我使用awk
打印出$5
中的blank
行。 awk
會運行並輸出結果,但它是整個輸入文件,而不僅僅是空白的行。我的awk
版本是GNU 4.0.1
。謝謝:)使用awk打印文件中的空白文件
輸入
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 – stark
您的程序對我來說工作正常---您確定您的字段是製表符分隔的嗎?同樣,如果你喜歡,你可以寫成它比awk更短一些。BEGIN {FS =「\ t」}!$ 5''。既然看起來你的領域沒有內部空間,'awk'!$ 5''也可以做到這一點。 – jas
'awk'!$ 5''將會失敗,如果'$ 5'中的任何值在數值上被評估爲零。 @Chris來調試,運行這個腳本:'tr'\ t''#'