nl: numera líneas por encima de tus posibilidades

Aprende a usar el comando nl en GNU/Linux para numerar líneas de archivos de texto y controlar el formato de salida desde la terminal.

En la administración de sistemas GNU/Linux es habitual trabajar con archivos de texto desde la terminal. En muchas ocasiones resulta útil numerar las líneas de un archivo para facilitar su lectura, depuración o referencia dentro de scripts y configuraciones.

El comando nl (abreviatura de number lines) permite numerar las líneas de un archivo de forma flexible. A diferencia de otras herramientas, ofrece opciones para controlar qué líneas se numeran, el formato de la numeración y cómo se presentan los resultados.

Esto lo convierte en una herramienta especialmente útil cuando se trabaja con scripts, archivos de configuración o documentos largos.

¿Para qué se usa el comando nl?

El comando nl se utiliza para mostrar el contenido de un archivo numerando sus líneas.

Entre sus usos más comunes se encuentran:

  • Numerar líneas de archivos de texto.
  • Facilitar la referencia a líneas concretas en documentación o soporte técnico.
  • Analizar scripts o archivos de configuración.
  • Procesar archivos en scripts de shell donde la numeración de líneas es relevante.

Por defecto, nl numera únicamente las líneas que contienen texto (no las líneas en blanco), aunque este comportamiento puede modificarse mediante diferentes opciones.

Sintaxis básica

La sintaxis general del comando es la siguiente:

nl [OPCIONES] archivo

Donde:

  • OPCIONES permite modificar cómo se numeran o formatean las líneas.
  • archivo es el fichero de texto que se desea procesar.

También es posible utilizar nl con entrada estándar, por ejemplo mediante una tubería.

Ejemplos del comando nl

A continuación se muestran algunos ejemplos prácticos del uso del comando y de sus opciones más útiles.

Numerar las líneas de un archivo

El uso más simple consiste en mostrar el contenido de un archivo con las líneas numeradas.

nl archivo.txt

Ejemplo de salida:

1  Primera línea
2  Segunda línea
3  Tercera línea

Por defecto, las líneas en blanco no se numeran.

Numerar también las líneas en blanco

Si queremos numerar todas las líneas, incluidas las vacías, se utiliza la opción -b a.

nl -b a archivo.txt

Salida de ejemplo:

     1  Primera línea
     2
     3  Segunda línea
     4  Tercera línea

Esto resulta útil cuando se quiere mantener una numeración exacta de todas las líneas del archivo.

Cambiar el formato de numeración

La opción -n permite modificar el formato de los números. Por ejemplo, para eliminar el relleno de espacios:

nl -n ln archivo.txt

Salida posible:

1  Primera línea
2  Segunda línea
3  Tercera línea

Los formatos más comunes son:

  • ln → alineado a la izquierda sin relleno
  • rn → alineado a la derecha sin relleno
  • rz → alineado a la derecha con ceros

Especificar el ancho del número de línea

Podemos controlar el número de caracteres reservados para la numeración usando -w.

nl -w 3 archivo.txt

Salida de ejemplo:

  1  Primera línea
  2  Segunda línea
  3  Tercera línea

Esto permite adaptar el formato de salida a distintos usos.

Cambiar el separador entre número y texto

La opción -s permite definir el separador entre el número de línea y el contenido.

nl -s ": " archivo.txt

Salida:

1: Primera línea
2: Segunda línea
3: Tercera línea

Esto es útil si se quiere generar una salida más clara o compatible con otros scripts.

Empezar la numeración desde otro número

Si queremos que la numeración empiece desde un valor distinto a 1, podemos usar -v.

nl -v 10 archivo.txt

Salida:

10 Primera línea
11 Segunda línea
12 Tercera línea

Numerar la salida de otro comando

nl también puede utilizarse en combinación con otros comandos mediante tuberías.

cat /etc/passwd | nl

O filtrando información específica:

grep t3rr0rz0n3 /etc/passwd | nl

Esto permite numerar fácilmente la salida de otros comandos.

Conclusión

El comando nl es una herramienta sencilla pero muy útil para numerar líneas de texto desde la terminal. Gracias a sus opciones permite controlar qué líneas se numeran, cómo se muestran los números y el formato de salida.

Es especialmente práctico para analizar archivos de configuración, scripts o cualquier documento de texto largo dentro de entornos GNU/Linux, facilitando la referencia a líneas concretas durante el trabajo diario con la terminal.


¿Buscas otro comando?

¡Revisa nuestro "Diccionario de comandos para GNU/Linux"!

Diccionario de comandos para GNU/Linux
Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación