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.