Saya memiliki kebiasaan menulis satu baris per kalimat karena saya biasanya mengkompilasi sesuatu ke LaTex, atau saya menulis dalam beberapa format lain di mana jeda baris diabaikan. Saya menggunakan baris kosong untuk menunjukkan awal paragraf baru.
Sekarang, saya memiliki file yang ditulis dengan gaya ini yang ingin saya kirimkan sebagai teks biasa. Saya ingin menghapus semua linebreak tunggal tetapi membiarkan double linebreak utuh. Inilah yang telah saya lakukan:
sed 's/$^/NEWLINE/' file.txt | awk '{printf "%s ",$0}' | sed 's/NEWLINE/\n\n/g' > linebreakfile.txt
Ini menggantikan baris kosong dengan beberapa teks yang saya yakin tidak muncul dalam file: NEWLINE
dan kemudian menghapus semua jeda baris dengan awk (saya menemukan trik itu di beberapa situs web) dan kemudian mengganti huruf NEWLINE
s dengan dua linebreak yang diperlukan. .
Ini sepertinya cara yang panjang lebar untuk melakukan hal yang cukup sederhana. Apakah ada cara yang lebih sederhana? Juga, jika ada cara untuk mengganti beberapa ruang (yang terkadang merayap karena suatu alasan) dengan ruang tunggal, itu juga bagus.
Saya menggunakan emacs, jadi jika ada beberapa trik spesifik emacs yang bagus, tetapi saya lebih suka melihat versi sed murni atau versi awk murni.
tr -d "\n"
.