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
も多くの機能とオプションを備えており、より機能的です。
各段落の間に空白行があることに注意してください。段落は、少なくとも1つの空白行で互いに分離する必要があります。空白行がない場合、入力サンプル全体が単一のマルチセンテンス段落として再フォーマットされます。例:
$ 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.