Cümle başına bir satır yazma alışkanlığım var çünkü genellikle LaTex'e bir şeyler derlerim ya da satır sonlarının yok sayılacağı başka bir formatta yazıyorum. Yeni bir paragrafın başlangıcını belirtmek için boş bir satır kullanıyorum.
Şimdi, bu tarzda yazılmış ve sadece düz metin olarak göndermek istediğim bir dosyam var. Tüm tek satır izlerini kaldırmak istiyorum ancak çift satır izlerini bozulmadan bırakın. Yaptığım şey bu:
sed 's/$^/NEWLINE/' file.txt | awk '{printf "%s ",$0}' | sed 's/NEWLINE/\n\n/g' > linebreakfile.txt
Bu, boş satırları dosyada görünmediğinden emin olduğum bir metinle değiştirir: NEWLINE
ve sonra tüm satır sonlarından awk ile kurtulur (bazı web sitelerinde bu numarayı buldum) ve sonra NEWLINE
gerekli iki satır aralığı ile s'leri değiştirir. .
Bu oldukça basit bir şey yapmak için uzun soluklu bir yol gibi görünüyor. Daha basit bir yolu var mı? Ayrıca, birden fazla boşluğu (bazen nedense sürünen) tek boşluklarla değiştirmenin bir yolu olsaydı, bu da iyi olurdu.
Ben emacs kullanıyorum, bu yüzden bazı emac'lere özgü bir numara varsa, iyi bir saf veya saf awk versiyonu görmeyi tercih ederim.
tr -d "\n"
.