Aşağıdaki input
dosyasında blank
blank
satırlarını yazdırmak için $5
. awk
, sonuçları çalıştırır ve sonuç verir, ancak yalnızca boş olan satırları değil, tüm girdi dosyasıdır. Benim awk
sürümüm GNU 4.0.1
. Teşekkür ederim :)awk kullanarak dosyada boş yazdırma hatları
giriş
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
istenen sonuç
chr6 32946856 32946981 chr6:32946856-32946981
awk
cat input | awk 'BEGIN {FS="\t"} $5=="" {print}'
akım çıkışı
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
düzenleme: awk
eser altında ancak orijinal Sana bir saha ayırıcı belirleyerek konum neden emin değilim
awk '$5==""' input
NF == 4 için test yerine – stark
Programınız benim için iyi çalışıyor --- alanlarınızın sekmeyle ayrılmış olduğundan kesinlikle emin misiniz? Ayrıca isterseniz, 'awk' BEGIN {FS = "\ t"}! 5 $ 'gibi biraz daha kısa yazabilirsiniz.Ve sizin alanlarınızın iç boşlukları olmadığı anlaşıldığından, 'awk'! $ 5 'muhtemelen bunu da yapardı. – jas
'awk '! $ 5', sayısal olarak sıfırlanan her şey $ 5’de sıfır olursa başarısız olur. @Chris hata ayıklamak için bu betiği çalıştırın: tr '\ t' '#'