Como posso quebrar o texto em um determinado tamanho de coluna?

117

Eu sei que posso usar algo como cat test.txt | pr -w 80 para quebrar linhas com 80 caracteres de largura, mas isso coloca muito espaço na parte superior e inferior das linhas impressas e não funciona em alguns sistemas

Qual é a melhor maneira de forçar um arquivo de texto com linhas longas a serem agrupadas em uma determinada largura?

Pontos de bônus se você não conseguir quebrar as palavras.

    
por cwd 23.11.2011 / 06:58

6 respostas

147

Você está procurando

fold -w 80 -s text.txt
  • -w informa a largura do texto, em que 80 é padrão.
  • -s diz para quebrar em espaços e não em palavras.

Esse é o método padrão , mas existem outros sistemas que precisam "-c "em vez de" -w ".

    
por 23.11.2011 / 07:07
45

Além de fold , dê uma olhada em fmt . fmt tenta escolher as quebras de linha de maneira inteligente para tornar o texto com boa aparência. Não quebra palavras longas, mas envolve apenas por espaços. Ele também se juntará a linhas adjacentes, o que é bom para prosa, mas ruim para arquivos de log ou outro texto formatado.

    
por 23.11.2011 / 19:28
11

Outra ferramenta (menos conhecida) que faz o que você quer é wrap do GNU Talkfilters :

wrap -w 80 < textfile

Também (fora do tópico):

but that puts a lot of space on the top and bottom of the printed lines

adicione -t ao invocar pr para omitir cabeçalhos / trailers:

   -t, --omit-header
          omit page headers and trailers
    
por 24.06.2013 / 17:34
10

1) largura de linha fixa assegurada com quebra de palavras:

fold -w 80 <text.txt

2) largura de linha fixa assegurada com quebra extraordinária de palavras (uma palavra só é quebrada se for muito grande para caber em uma linha):

fold -sw 80 <text.txt

3) prometendo largura de linha fixa sem quebra de palavras (se a palavra for muito grande para caber em uma linha, ela ainda é deixada como está, então algumas linhas podem ter tamanho maior do que o necessário):

fmt -w 80 <text.txt
    
por 14.09.2015 / 11:31
5

E para mais opções de formatação, consulte par - link

    
por 21.04.2013 / 15:45
-1
fold -w 100 -s text.txt

funcionou para mim, já que preciso dividir cada linha até 100 caracteres

    
por 10.06.2015 / 09:11