2016-03-21 19 views
0

Ben girişlerinin bazı şuna benzer bir metin dosyası vardır:Bir metin dosyasındaki boş satırları nasıl kaldırabilirim ve boş satırla ayrılmış satırları nasıl ekleyebilirim?

"Hello, my name is 

George. Its very nice to meet you" 

ve bana aşağıdaki sonucu veren bir SED veya AWK komutu çalıştırmak istiyorum:

"Hello, my name is George. Its very nice to meet you" 

biliyorum Ben çalıştırarak SED ile boş satırlar kaldırabilirsiniz: komutu

sed '/^\s*$/d' 

sadece boş satır kaldırır ama yukarıda gösterildiği gibi dize katılmak etmez. I awk kullanmak

sayesinde

+0

dosyanızın fazla içerik yapıştırabilirsiniz: senin boş satır boşluk içerebilir eğer


Btw, gereken komut ise? – Kent

+1

Olası çoğaltılabilir [sed kullanarak yeni satırı (\ n) nasıl değiştirebilirim?] (Http://stackoverflow.com/questions/1251999/how-can-i-replace-a-newline-n-using-sed) – andlrc

cevap

1

:

awk 'BEGIN{RS="\n\n";ORS=" "}1' file 

komut girişi ayırıcı ve çıkış kayıt ayırma bir alan olarak iki yeni satır (boş hat) kullanıyor.

1 bir awk deyimidir. Her zaman awk her kaydı yazdırır.

awk 'BEGIN{RS="\n[[:space:]]*\n";ORS=" "}1' file 
+0

Cevabınız için çok teşekkür ederim. Oluşturduğum bir test dosyasıyla çalıştım ama düzeltmem gereken dosya üzerinde çalışmıyor. Belki sözde boş satırlarda bazı çöp karakterler var? Hiç birşey göremiyorum. – Leonus

+0

Muhtemelen üzerinde çalıştığınız dosya Windows'dan mı geliyor? – hek2mgl

+0

Bu işe yaradı. Bir milyon teşekkür! – Leonus

İlgili konular