systemadmin.es > Utilidades > fold – Formatear un texto a un determinado tamaño

fold – Formatear un texto a un determinado tamaño

Al generar ficheros de texto con documentación, resulta más cómodo de leer si los formateamos a un determinado número de columnas en lugar de dejarlo que se formatee solo el lector que utilicemos. Mediante el comando fold podemos formatearlo fácilmente:

fold - wrap each input line to fit in specified width

Si lo ejecutamos directamente, por defecto, nos lo va a cortar a 80 caracteres por línea:

$ ps auxf | fold
(...)
jprats    5914  0.0  0.0   6688  3068 pts/1    Ss   08:29   0:00  \_ bash
jprats    6389  0.0  0.0   4736   996 pts/1    R+   08:43   0:00      \_ ps auxf
jprats    6390  0.0  0.0   4072   440 pts/1    S+   08:43   0:00      \_ fold
smmsp     6054  0.0  0.0  12076  1552 ?        Ss   08:29   0:00 sendmail: Queue
 runner@01:00:00 for /var/spool/clientmqueue
root      6056  0.0  0.0  12412  1680 ?        Ss   08:29   0:00 sendmail: accep
ting connections
root      6089  0.0  0.0   7464  2548 ?        Ss   08:29   0:00 /usr/sbin/openv
pn --daemon --writepid /var/run/openvpn/pica.pid --config pica.conf --cd /etc/op
envpn --script-security 2
root      6093  0.0  0.0   7572  2572 ?        Ss   08:29   0:00 /usr/sbin/openv
pn --daemon --writepid /var/run/openvpn/qapla.pid --config qapla.conf --cd /etc/
openvpn --script-security 2

Por defecto lo corta sin tener en cuenta si esta a mitad de palabra, para que corte por los espacios deberemos añadir la opción -s:

$ ps auxf | fold -s
(...)
jprats    5914  0.0  0.0   6688  3072 pts/1    Ss   08:29   0:00  \_ bash
jprats    6404  0.0  0.0   4736   996 pts/1    R+   08:45   0:00      \_ ps auxf
jprats    6405  0.0  0.0   4072   440 pts/1    S+   08:45   0:00      \_ fold -s
smmsp     6054  0.0  0.0  12076  1552 ?        Ss   08:29   0:00 sendmail: 
Queue runner@01:00:00 for /var/spool/clientmqueue
root      6056  0.0  0.0  12412  1680 ?        Ss   08:29   0:00 sendmail: 
accepting connections
root      6089  0.0  0.0   7464  2548 ?        Ss   08:29   0:00 
/usr/sbin/openvpn --daemon --writepid /var/run/openvpn/pica.pid --config 
pica.conf --cd /etc/openvpn --script-security 2
root      6093  0.0  0.0   7572  2572 ?        Ss   08:29   0:00 
/usr/sbin/openvpn --daemon --writepid /var/run/openvpn/qapla.pid --config 
qapla.conf --cd /etc/openvpn --script-security 2

Para indicar un tamaño de corte diferente, podemos hacerlo con la opción -w:

$ ps auxf | fold -s -w40
(...)
jprats    5914  0.0  0.0   6688  3072 
pts/1    Ss   08:29   0:00  \_ bash
jprats    6420  0.0  0.0   4736   996 
pts/1    R+   08:47   0:00      \_ ps 
auxf
jprats    6421  0.0  0.0   4072   440 
pts/1    S+   08:47   0:00      \_ fold 
-s -w40
smmsp     6054  0.0  0.0  12076  1552 ? 
       Ss   08:29   0:00 sendmail: 
Queue runner@01:00:00 for 
/var/spool/clientmqueue
root      6056  0.0  0.0  12412  1680 ? 
       Ss   08:29   0:00 sendmail: 
accepting connections
root      6089  0.0  0.0   7464  2548 ? 
       Ss   08:29   0:00 
/usr/sbin/openvpn --daemon --writepid 
/var/run/openvpn/pica.pid --config 
pica.conf --cd /etc/openvpn 
--script-security 2
root      6093  0.0  0.0   7572  2572 ? 
       Ss   08:29   0:00 
/usr/sbin/openvpn --daemon --writepid 
/var/run/openvpn/qapla.pid --config 
qapla.conf --cd /etc/openvpn 
--script-security 2

One comment to “fold – Formatear un texto a un determinado tamaño”

  1. Podemos tambien usar el viejo fmt para formatear nuestros ficheros

    Un saludo !!

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>