Use fmt
:
fmt --width=80 file
De man fmt
:
-w, --width=WIDTH
maximum line width (default of 75 columns)
Portanto, tenho algumas saídas com linhas muito longas e quero formatá-las em linhas com no máximo 80 colunas, mas não quero dividir as palavras porque elas estão no limite da coluna.
Eu tentei
sed 's/.\{80\}/&\n/g'
mas tem o problema de dividir palavras e fazer algumas linhas começarem com um espaço.
Eu consegui fazer isso com o Vim, definindo textwidth
para 80, indo para o início do arquivo e executando gqG
para formatar o texto. Mas é preferível fazê-lo com sed
, awk
ou algo semelhante para incluí-lo em um script.
Use fold
da seguinte forma:
fold -s -w80 file
Isso só será dividido no espaço em branco ( -s
), usando uma largura de linha de 80 caracteres ( -w80
). Portanto, ele faz exatamente o mesmo que as soluções fmt
, mas também permite quebrar em qualquer caractere ao omitir a opção -s
.
A solução abaixo mencionada pode ajudar:
cat file_name.txt | fmt -w 80 > reduced_file_name.txt
fmt - formatador de texto ideal simples.
Tags text-processing text awk sed