Usando sede 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.
O script sed insere uma nova linha antes de cada linha que começa com uma letra maiúscula (exceto a primeira linha de entrada). sedA saída do é então canalizada fmtpara reformatar os parágrafos resultantes.
Como alternativa, use parse você o tiver instalado. É outro reformatador de parágrafos, mas muito mais capaz que fmt, com muito mais recursos e opções.
Observe que haverá uma linha em branco entre cada parágrafo. Os parágrafos devem ser separados um do outro por pelo menos uma linha em branco. Sem as linhas em branco, toda a amostra de entrada é reformatada como um único parágrafo com várias frases, por exemplo:
$ fmt input.txt
This is one sentence that is broken. However this is a good one.
And this one is somehow, broken into many.
Se você precisar remover as linhas em branco após a reformatação, passe-a sednovamente - mas isso removerá TODAS as linhas em branco, incluindo as que estiverem na entrada original. por exemplo
$ 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.