2016-03-28 27 views
-2

TümAWK CSV olmayan boş sütunlar baskı (ve başlık satırı dahil)

bir CSV satır-satır ayrıştırma ve her hat için bir tablo oluşturmak ama sadece sütun baskı oluşturmak istiyorum ve boş olmayan alanlar için başlık. Örnek veri:

HEADER1,HEADER2,HEADER3,HEADER4 
field1,,field3,field4 

istediğim:

HEADER1,HEADER3,HEADER4 
field1,field3,field4 
+2

"Bunu awk ile yapmanın kolay bir yolu olduğunu biliyorum", Daha sonra bize göstermek için Q'nuzu düzenleyin Denedin mi? YANİ. ücretsiz bir kodlama hizmeti değildir, işinizi göstermeniz beklenir ve daha sonra kodun nasıl çalıştığına dair sahip olduğunuz kavramsal sorunları düzeltmeye yardımcı olabiliriz. İyi şanslar. – shellter

+0

Her zaman sadece bir başlık ve bir kayıt mı? – JNevill

+0

Evet, her seferinde bir tablo oluşturmak için dosya satırında temelde dolaştığım bir seferde bir satırda çalışıyorum. – syntax

cevap

1

Bunu (blanks.awk) gibi bir komut dosyası kullanabilirsiniz: çalıştırmak blanks.csv Varlığınız dosyası ile

BEGIN { FS=OFS=","} 
NR == 1 { for (i = 1; i<= NF; i++) hdrs[ i ] = $i 
      next 
     } 
1  { for(i =1; i <= NF; i++){ 
      printf("%s", ($i!="" ? hdrs[ i ] OFS: "")) 
      } 
      printf("\n") 
      for(i =1; i <= NF; i++){ 
      printf("%s", ($i!="" ? $i OFS: "")) 
      } 
      printf("\n") 
     } 

, bu komut: awk -f blanks.awk blanks.csv

+0

Harika çalışıyor! Teşekkür ederim! Satırda yapmak için gereken şekilde düzenleyebilirim. Çok sevinen Lars. – syntax