A resposta usando fmt
parece ser wrap em vez de desembrulhar .
Em geral, isso pode ser um problema difícil. Por exemplo, distinguir entre linhas adjacentes de texto que são deliberadamente terminadas cedo (por exemplo, pontos de bala) e linhas adjacentes de texto livre requer algum contexto. Distinguindo entre palavras hifenizadas através de linhas e palavras divididas também é difícil.
Uma forma comum de prosa, no entanto, são linhas de texto embrulhadas adjacentes formando um parágrafo separado por uma única nova linha vazia.
Isso pode ser desdobrado usando o seguinte, bastante envolvido sed um forro:
sed -n '/.+/ H; /^$/ { x; s/\n/ /g; s/$/\n/ ; p}'
Alternativamente, você pode preferir um pequeno script python, especialmente se você estiver indo para lidar com algum especial casos:
import sys
paragraph = []
for line in sys.stdin:
line = line.strip()
if line:
paragraph.append(line)
else:
print ' '.join(paragraph).replace(' ', ' ')
paragraph = []
if paragraph:
print ' '.join(paragraph).replace(' ', ' ')
Se você se encontrar adicionando um invólucro especial, então você gosta de encontre a origem do seu texto enrolado em linha e obtenha em um formulário sem linha.