Utilizzando 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.
Lo script sed inserisce una nuova riga prima di ogni riga che inizia con una lettera maiuscola (ad eccezione della prima riga di input). sed
L'output viene quindi reindirizzato fmt
per riformattare i paragrafi risultanti.
In alternativa, utilizzare par
se è installato. È un altro riformattatore di paragrafi, ma molto più capace di fmt
, con molte più funzioni e opzioni.
Si noti che ci sarà una linea vuota tra ogni paragrafo. I paragrafi devono essere separati l'uno dall'altro da almeno una riga vuota. Senza le righe vuote, l'intero campione di input viene riformattato come un singolo paragrafo a più frasi, ad esempio:
$ 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 è necessario rimuovere le righe vuote dopo aver riformattato, reindirizzarle di sed
nuovo, ma ciò rimuoverà TUTTE le righe vuote, comprese quelle eventualmente presenti nell'input originale. per esempio
$ 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.