Мені властиво писати один рядок за реченням, тому що я зазвичай складаю речі в LaTex або пишу в іншому форматі, коли розриви рядків ігноруються. Я використовую порожній рядок для позначення початку нового абзацу.
Тепер у мене є файл, написаний у такому стилі, який я хотів би просто надіслати як звичайний текст. Я хочу видалити всі одиничні розриви, але подвійні розриви лінії залишаються недоторканими Це те, що я зробив:
sed 's/$^/NEWLINE/' file.txt | awk '{printf "%s ",$0}' | sed 's/NEWLINE/\n\n/g' > linebreakfile.txt
Це замінює порожні рядки деяким текстом, я впевнений, що він не відображається у файлі: NEWLINE
а потім він позбавляється від усіх розривів рядків з awk (я знайшов цей трюк на якомусь веб-сайті), а потім замінює NEWLINE
s необхідними двома рядками .
Це здається давно звивистим способом зробити досить просту річ. Чи є простіший спосіб? Крім того, якби існував спосіб замінити декілька пробілів (які іноді повзають з якоїсь причини) одинарними пробілами, це теж було б добре.
Я використовую emacs, тому якщо є якийсь специфічний трюк для emacs, це добре, але я краще побачу чисту версію sed або чистий awk.
tr -d "\n"
.