Використання sed
та fmt
:
$ sed -e '1n; s/^[[:upper:]]/\n&/' input.txt | fmt
This is one sentence that is broken.
However this is a good one.
And this one is somehow, broken into many.
Сценарій sed вставляє новий рядок перед кожним рядком, який починається з великої літери (за винятком самого першого рядка введення). sed
Потім виводиться висновок fmt
для переформатування отриманих абзаців.
Крім того, використовуйте, par
якщо він встановлений. Це ще один переформатор абзацу, але набагато більш здатний, ніж fmt
із значно більшою кількістю функцій та можливостей.
Зауважте, що між кожним абзацом буде порожній рядок. Абзаци повинні бути відокремлені один від одного хоча б одним порожнім рядком. Без порожніх рядків увесь зразок введення переформатується у вигляді одного абзацу з кількома реченнями, наприклад:
$ fmt input.txt
This is one sentence that is broken. However this is a good one.
And this one is somehow, broken into many.
Якщо вам потрібно буде видалити порожні рядки після переформатування, просто переведіть їх sed
ще раз, але це видалить ВСІ порожні рядки, включаючи будь-які, що були в оригінальному введенні. напр
$ sed -e '1n; s/^[[:upper:]]/\n&/' input.txt | fmt | sed -e '/^$/d'
This is one sentence that is broken.
However this is a good one.
And this one is somehow, broken into many.