Diyelim ki bir dosyam var:
PRO 1
GLN 5.55112e-17
ILE -6.245e-17
THR 5.55112e-17
İkinci sütunda 1'e eşit olmayan bir sayıya sahip her satırın 0 olarak değiştirilmesini ve geri kalanının korunmasını istiyorum.
Ben kullanırsanız if(yani şartlı deyimi), herşey yolundadır:
awk '{if($2!=1){print $1,"0"}else{print $0}}' file
PRO 1
GLN 0
ILE 0
THR 0
Ancak koşullu bloğu kullandığımda istenmeyen bir şey oluyor:
awk '$2!=1 {print $1,"0"} {print $0}' file
PRO 1
GLN 0
GLN 5.55112e-17
ILE 0
ILE -6.245e-17
THR 0
THR 5.55112e-17
Neyin yanlış olduğunu görebilirsiniz.
- Bu hatayı nasıl düzeltirim?
- Bu hata neden oluşuyor?
- Koşullu ifade ile koşullu blok arasındaki fark nedir?
awk '$2!=1?$2=0:"";1' file.