Aplicaciones prácticas y uso avanzado
En este último paso, exploraremos algunas aplicaciones prácticas y el uso avanzado del comando nl
en escenarios del mundo real.
Numeración de múltiples archivos
El comando nl
puede procesar múltiples archivos a la vez. Creemos un segundo archivo:
nano commands2.txt
Agrega el siguiente contenido:
Additional Linux Commands
------------------------
find - search for files
tar - archive files
ssh - secure shell connection
df - disk free space
top - display system processes
Guarda y sal del editor nano. Ahora, numeremos ambos archivos juntos:
nl sample.txt commands2.txt > combined_numbered.txt
Ve el resultado combinado:
cat combined_numbered.txt
Deberías ver que ambos archivos están numerados secuencialmente:
1 Linux Commands
2 -------------
3 cat - display file contents
4 ls - list directory contents
5 cd - change directory
6 grep - search for patterns
7 chmod - change file permissions
1 Additional Linux Commands
2 ------------------------
3 find - search for files
4 tar - archive files
5 ssh - secure shell connection
6 df - disk free space
7 top - display system processes
Observa que los números de línea se reinician para el segundo archivo. Si quieres una numeración continua entre archivos, puedes usar la opción -i
:
nl -i 1 -n ln sample.txt commands2.txt > continuously_numbered.txt
Ve el resultado:
cat continuously_numbered.txt
Deberías ver una numeración continua en ambos archivos:
1 Linux Commands
2 -------------
3 cat - display file contents
4 ls - list directory contents
5 cd - change directory
6 grep - search for patterns
7 chmod - change file permissions
8 Additional Linux Commands
9 ------------------------
10 find - search for files
11 tar - archive files
12 ssh - secure shell connection
13 df - disk free space
14 top - display system processes
Combinación con otros comandos
El comando nl
se puede combinar con otros comandos de Linux utilizando tuberías (pipes). Por ejemplo, puedes numerar las líneas de la salida de un comando:
ls -l /etc | nl > numbered_ls_output.txt
Ve el resultado:
cat numbered_ls_output.txt
Deberías ver la salida de ls -l /etc
con números de línea agregados.
Caso de uso en el mundo real: Agregar números de línea a un archivo de registro
La numeración de líneas es especialmente útil cuando se analizan archivos de registro. Veamos cómo podemos usar nl
para agregar números de línea a los registros:
## First, create a sample log file
cat > sample_log.txt << EOF
[2023-07-01 10:15:22] INFO: System startup
[2023-07-01 10:15:24] INFO: Loading configuration
[2023-07-01 10:15:25] WARNING: Config file is outdated
[2023-07-01 10:15:28] ERROR: Failed to connect to database
[2023-07-01 10:15:30] INFO: Retrying database connection
[2023-07-01 10:15:33] INFO: Database connection established
[2023-07-01 10:15:35] INFO: System ready
EOF
Ahora, agrega números de línea con un formato personalizado que incluya el número de línea entre corchetes:
nl -s ' [Line: ' -n ln -w 2 -b a sample_log.txt | sed 's/$/]/' > numbered_log.txt
Este comando:
- Utiliza un separador personalizado
-s ' [Line: '
- Utiliza números alineados a la izquierda sin ceros a la izquierda
-n ln
- Establece el ancho en 2 caracteres
-w 2
- Numera todas las líneas
-b a
- Utiliza
sed
para agregar un corchete de cierre al final de cada línea
Ve el resultado:
cat numbered_log.txt
Deberías ver entradas de registro con números de línea entre corchetes:
1 [Line: [2023-07-01 10:15:22] INFO: System startup]
2 [Line: [2023-07-01 10:15:24] INFO: Loading configuration]
3 [Line: [2023-07-01 10:15:25] WARNING: Config file is outdated]
4 [Line: [2023-07-01 10:15:28] ERROR: Failed to connect to database]
5 [Line: [2023-07-01 10:15:30] INFO: Retrying database connection]
6 [Line: [2023-07-01 10:15:33] INFO: Database connection established]
7 [Line: [2023-07-01 10:15:35] INFO: System ready]
Este formato puede ser muy útil cuando se hace referencia a entradas de registro específicas en documentación o discusiones.
Ahora tienes una buena comprensión de cómo usar el comando nl
para la numeración básica y avanzada de líneas en Linux. Esta habilidad será valiosa cuando trabajes con archivos de texto, registros, código y documentación.