El comando nl en Linux: añadir números de línea a archivos de texto

Linux ofrece varios comandos para dar formato y editar texto, y un comando especialmente útil es el comando nl . Esta herramienta te permite añadir números de línea a cada línea de un archivo de texto o de la entrada, lo que facilita la lectura y la organización del contenido.


¿Qué hace el comando nl ?

El comando nl muestra el contenido de un archivo de texto con números de línea añadidos a las líneas no vacías de forma predeterminada. Es especialmente útil cuando se trabaja con scripts o se revisan archivos grandes, donde llevar la cuenta de los números de línea es fundamental para depurar o editar.


Ejemplo: uso del comando nl

Supón que tienes un archivo llamado hello-world.sh que contiene el siguiente script:

#!/bin/bash
#
#This is a demo script that greets the world
#Author: Jose Navarro Varela
#Usage: ./hello-world.sh

clear
echo hello world
exit 0

Para mostrar el archivo con números de línea, simplemente ejecuta:

nl hello-world.sh

El resultado se verá así:

     1 #!/bin/bash
     2 #
     3 #This is a demo script that greets the world
     4 #Author: Jose Navarro Varela
     5 #Usage: ./hello-world.sh
     6 clear
     7 echo hello world
     8 exit 0

De forma predeterminada, el comando nl numera solo las líneas no vacías.


Numerar todas las líneas (incluidas las vacías)

Para incluir las líneas vacías en la numeración, usa la opción -b a :

nl -b a hello-world.sh

El resultado se verá así:

     1 #!/bin/bash
     2 #
     3 #This is a demo script that greets the world
     4 #Author: Jose Navarro Varela
     5 #Usage: ./hello-world.sh
     6
     7 clear
     8 echo hello world
     9 exit 0

Añadir un separador personalizado

El comando nl te permite personalizar el separador entre los números de línea y el texto usando la opción -s . Por ejemplo, para añadir ... como separador:

nl -s "..." hello-world.sh

El resultado se verá así:

1...#!/bin/bash
2...#
3...#This is a demo script that greets the world
4...#Author: Jose Navarro Varela
5...#Usage: ./hello-world.sh
6...
7...clear
8...echo hello world
9...exit 0

Opciones adicionales

El comando nl ofrece más opciones de personalización, como:

  • -w: Especifica el ancho del campo del número de línea.
  • -n: Define el formato de numeración (alineado a la derecha, alineado a la izquierda o rellenado con ceros).

Puedes explorar todas las opciones disponibles consultando la página del manual con:

man nl

Escenarios comunes de uso del comando nl

El comando nl se usa ampliamente en diversas situaciones. Estos son algunos de los escenarios más comunes:

1. Depurar scripts de shell

Al depurar un script de shell, es posible que necesites referirte a líneas específicas donde se producen errores. Usar el comando nl para añadir números de línea facilita localizar las líneas problemáticas.

Ejemplo:

nl my-script.sh

2. Preparar documentación o revisiones de código

Al compartir scripts o fragmentos de código para su revisión, añadir números de línea hace que el contenido sea más legible y más fácil de referenciar durante las discusiones.

Ejemplo:

nl config.conf > numbered-config.conf

3. Revisar archivos de texto grandes

Cuando se trabaja con archivos de registro, de configuración o de datos grandes, añadir números de línea ayuda a navegar y a referenciar secciones específicas.

Ejemplo:

nl /var/log/syslog

4. Comparar archivos con números de línea

Añadir números de línea a los archivos antes de compararlos facilita la identificación de diferencias.

Ejemplo:

nl file1.txt > numbered-file1.txt
nl file2.txt > numbered-file2.txt
diff numbered-file1.txt numbered-file2.txt

5. Dar formato a la salida para informes

El comando nl se puede usar para dar formato a archivos de texto para informes o presentaciones en los que se requieren líneas numeradas para mayor claridad.

Ejemplo:

nl report.txt > numbered-report.txt

6. Ver scripts con números de línea en las líneas vacías

A veces los scripts contienen líneas vacías que son importantes para la legibilidad. Puedes usar la opción -b a para numerar todas las líneas, incluidas las vacías.

Ejemplo:

nl -b a script.sh

7. Personalizar los números de línea para formatos específicos

Al presentar archivos de texto numerados, es posible que necesites separadores o formatos personalizados.

Ejemplo:

nl -s " -> " textfile.txt

¿Por qué usar el comando nl ?

El comando nl es una herramienta sencilla pero potente para:

  • Depurar scripts identificando líneas específicas.
  • Añadir números de línea a archivos de texto para navegar más fácilmente.
  • Preparar salidas con formato para documentación o para compartir.

Deja un comentario