Usar fmt para dar formato a párrafos de archivos de texto

Algunas veces llegarán a nuestras manos archivos de texto cuyas líneas tengan una longitud considerable o no sea consistente de línea en línea. En estos casos es poco práctico ir de una punta a la otra de cada línea moviendo el cursor (en la línea de comandos) o la barra de desplazamiento horizontal (si estamos utilizando una Graphical User Interface, o GUI). Veamos cómo podemos usar fmt para dar formato a este tipo de archivos de texto para poder visualizarlo de manera más amigable.

En el mundo real

Uno de los casos de la vida real en el que he visto esta situación es al revisar una librería de Javascript o un archivo de hoja de estilos en cascada (.css) al trabajar en un desarrollo web. Por ejemplo, la popular librería ChartJS permite crear varios tipos de gráficos HTML5 para aplicaciones web (y además es Open Source). Hace poco me vi en la necesidad de descargar el código de la librería desde un CDN para inspeccionarlo, y me encontré con que solamente contaba con 10 líneas, pero que la longitud de las mismas era muy irregular, con una de ellas llegando inclusive a superar los 30.000 caracteres.

Para demostrarlo, descarguemos la librería:

wget https://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.2/Chart.min.js

Con el siguiente script (por simplicidad, le llamaremos largolineas.sh) contaremos la cantidad de líneas que posee el archivo y el número de caracteres de cada una:

#!/bin/bash

ARCHIVO=$1

CANTIDAD_LINEAS=$(cat $ARCHIVO | wc -l)

echo "$ARCHIVO tiene $CANTIDAD_LINEAS líneas, cuyas longitudes son (en cantidad de caracteres): "

while read LINE; do
    echo $LINE | wc -m
done < $ARCHIVO

(Omití los comentarios en el código por una cuestión de brevedad, pero si surge alguna duda pueden despejarla consultando nuestra serie de posts sobre shell scripting).

Para ejecutar el script, le pasaremos como único argumento el nombre del archivo:

./largolineas.sh Chart.min.js

El resultado fue el mostrado en la Fig. 1:

Visualizando la cantidad de líneas de un archivo y la cantidad de caracteres en cada una
Figura 1 – Visualizando la cantidad de líneas de un archivo y la cantidad de caracteres en cada una

Como vemos, sería muy difícil o imposible examinar el archivo utilizando solamente un editor de texto. Para solucionar este inconveniente vamos a usar fmt.

Cómo usar fmt

Entre otras cosas, fmt nos permite especificar el número de caracteres de cada línea. El valor por defecto es 75, pero puede cambiarse utilizando la opción --width (o su equivalente -w) de la siguiente manera:

fmt --width=60 Chart.min.js # Limitar la cantidad de caracteres por línea a 60

En la Fig. 2 podemos ver la diferencia que existe en el número de líneas del archivo si usamos o no fmt:

Usar fmt para modificar la cantidad de caracteres en cada línea de un archivo de texto
Figura 2 – Usar fmt para modificar la cantidad de caracteres en cada línea de un archivo de texto

Si bien el número de líneas aumentó considerablemente, ahora podremos visualizarlo más cómodamente si redirigimos la salida de fmt a un archivo.

¡Nos leemos en breve!

Deja una respuesta