Sé que puedo usar algo como cat test.txt | pr -w 80
ajustar líneas a 80 caracteres de ancho, pero eso pone mucho espacio en la parte superior e inferior de las líneas impresas y no funciona bien en algunos sistemas
¿Cuál es la mejor manera de forzar que un archivo de texto con líneas largas se ajuste a un ancho determinado?
Puntos de bonificación si puede evitar que rompa palabras.
fold -s -w 80 email.txt | sed 's/^.*$/> &/'
fold
rompe las URL, mientrasfmt
que no.Además de
fold
, eche un vistazo afmt
.fmt
intenta elegir saltos de línea de manera inteligente para que el texto se vea bien. No rompe palabras largas, sino que se ajusta solo por espacios. También unirá líneas adyacentes, lo cual es bueno para la prosa pero malo para los archivos de registro u otro texto formateado.fuente
1) ancho de línea fijo asegurado con separación de palabras:
2) ancho de línea fijo asegurado con un extraordinario salto de palabras (una palabra se rompe solo si es demasiado grande para caber en una línea):
3) un ancho de línea fijo prometedor sin división de palabras (si la palabra es demasiado grande para caber en una línea, todavía se deja como está, por lo que finalmente algunas líneas pueden ser más grandes de lo que necesita):
fuente
Otra herramienta (menos conocida) que hace lo que quieres es
wrap
de GNU Talkfilters :También (fuera del tema):
agregue
-t
al invocarpr
para omitir encabezados / trailers:fuente
Y para obtener más opciones de formato, consulte
par
: http://www.nicemice.net/par/fuente
funcionó para mí ya que necesito dividir cada línea hasta 100 caracteres
fuente