Utilisation de sed
et 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.
Le script sed insère une nouvelle ligne avant chaque ligne commençant par une majuscule (à l'exception de la toute première ligne de saisie). sed
La sortie de est ensuite canalisée fmt
pour reformater les paragraphes résultants.
Vous pouvez également l'utiliser par
si vous l'avez installé. C'est un autre reformatage de paragraphe, mais beaucoup plus performant que fmt
, avec beaucoup plus de fonctionnalités et d'options.
Notez qu'il y aura une ligne vide entre chaque paragraphe. Les paragraphes doivent être séparés les uns des autres par au moins une ligne vierge. Sans les lignes vides, tout votre échantillon d'entrée est reformaté en un seul paragraphe de plusieurs phrases, par exemple:
$ fmt input.txt
This is one sentence that is broken. However this is a good one.
And this one is somehow, broken into many.
Si vous devez supprimer les lignes vides après le reformatage, il vous suffit de les rediriger sed
- mais cela supprimera TOUTES les lignes vides, y compris celles qui peuvent avoir été dans l'entrée d'origine. par exemple
$ 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.