Usando sed
e 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). sed
A saída do é então canalizada fmt
para reformatar os parágrafos resultantes.
Como alternativa, use par
se 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 sed
novamente - 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.