Comando Linux nl
Colección completa de comandos Linux
1. Resumen del comando nl
nlEs una herramienta de línea de comandos simple pero práctica en el sistema Linux, cuyo nombre completo es "number lines" (número de línea). Su función principal es leer el contenido del archivo, agregar un número de línea a cada línea y luego enviar el resultado a la salida estándar.
1.1 ¿Por qué necesitamos el comando nl?
En el desarrollo diario o la administración del sistema, a menudo necesitamos:
- Ver rápidamente líneas específicas de código o archivos de registro
- Facilitar la referencia a números de línea específicos al discutir el contenido de archivos
- Numerar el contenido del archivo para su posterior procesamiento
- Generar documentos o informes con números de línea
Aunquecat -ntambién puede realizar funciones similares, peronlofrece opciones de control de números de línea más ricas, que pueden satisfacer necesidades más complejas.
2. Sintaxis básica y parámetros
2.1 Formato básico del comando
Ejemplo
2.2 Explicación de opciones comunes
| Opción | Descripción |
|---|---|
-b |
Especifica las reglas de cálculo del número de línea (seguido de estilo) |
-i |
Establece el incremento del número de línea (por defecto 1) |
-n |
Establece el formato del número de línea (alineación izquierda/derecha/sin cero) |
-s |
Establece el separador entre el número de línea y el contenido |
-v |
Establece el número de línea inicial (por defecto 1) |
-w |
Establece el ancho del campo del número de línea (número de caracteres) |
-p |
No reinicia el número de línea en los saltos de página |
2.3 Reglas de cálculo de números de línea (opción -b)
-bDespués de la opción se pueden usar los siguientes estilos:
| Estilo | Descripción |
|---|---|
a |
Numera todas las líneas |
t |
Numera solo líneas no vacías (valor predeterminado) |
n |
Sin numerar |
p正则表达式 |
Numera solo las líneas que coinciden con la expresión regular |
3. Demostración de ejemplos prácticos
3.1 Uso básico: agregar números de línea a archivos
Ejemplo
nl example.txt
# Agrega números de línea a todas las líneas (incluidas las vacías)
nl -b a example.txt
3.2 Formato de número de línea personalizado
Ejemplo
nl -n rz -w 3 example.txt
# Usa "|" como separador, con números de línea alineados a la izquierda
nl -s " | " -n ln example.txt
3.3 Reglas de numeración avanzadas
Ejemplo
nl -v 10 -i 2 example.txt
# Numera solo las líneas que contengan "error"
nl -b perror example.log
3.4 Procesar múltiples archivos
Ejemplo
nl file1.txt file2.txt
# Numera cada archivo por separado
nl -p file1.txt file2.txt
4. Comparación con otros comandos
4.1 nl vs cat -n
| Característica | nl | cat -n |
|---|---|---|
| Comportamiento predeterminado | Numera solo líneas no vacías | Numera todas las líneas |
| Control de formato | Rico (alineación, ancho, separadores, etc.) | Limitado |
| Reglas de numeración | Personalizable (coincidencia de expresiones regulares, etc.) | Fijo |
| Rendimiento | Ligeramente más lento | Ligeramente más rápido |
4.2 nl vs grep -n
grep -nTambién muestra números de línea, pero su propósito principal es la búsqueda y el filtrado, siendo los números de línea solo información adicional.nlEs una herramienta específicamente optimizada para mostrar números de línea.
5. Escenarios de aplicación práctica
5.1 Revisión de código
Ejemplo
nl -w 3 -n rz source.py > numbered_source.txt
5.2 Análisis de registros
Ejemplo
nl -b pERROR app.log | less
5.3 Procesamiento de documentos
Ejemplo
nl -s ". " -w 2 -n rz README.md
6. Precauciones y consejos
- Manejo de líneas vacías: De forma predeterminada
nlomite las líneas vacías; usa-b apara forzar la numeración de todas las líneas - Procesamiento de archivos grandes: Para archivos muy grandes, considera combinarlo con
lessoheadpara usar - Uso con tuberías (pipes): Puede recibir entrada estándar, como
cat file | nl - Consistencia de formato: Se recomienda usar un conjunto fijo de parámetros en los scripts para garantizar un formato de salida uniforme
- Consideraciones de rendimiento: Para necesidades simples de numeración,
cat -npuede ser más rápido
7. Ejercicios de resumen
7.1 Ejercicios propuestos
- Crea un archivo de prueba
test.txtque contenga 5 líneas de texto y 2 líneas vacías - Usa
nlpara mostrar todos los números de línea (incluidas las líneas vacías) - Establece que los números de línea comiencen en 100, con incremento de 5
- Usa "::" como separador, con un ancho de número de línea de 4
- Redirige el resultado a
numbered.txt
7.2 Respuestas de referencia
Ejemplo
echo -e "Primera línea\n\nSegunda línea\nTercera línea\n\nCuarta línea\nQuinta línea" > test.txt
# Ejecuta el comando nl
nl -b a -v 100 -i 5 -s "::" -w 4 test.txt > numbered.txt
# Ver el resultado
cat numbered.txt