Comando Linux nl

Linux 命令大全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

nl [opciones]... [archivo]...

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

# Agrega números de línea a todas las líneas no vacías de example.txt
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

# Establece el ancho del número de línea en 3, usando formato alineado a la derecha
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

# Numera desde 10, con incremento de 2
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

# Numera varios archivos de forma consecutiva
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

# Genera un archivo de código con números de línea para facilitar la discusión
nl -w 3 -n rz source.py > numbered_source.txt

5.2 Análisis de registros

Ejemplo

# Numera solo las líneas de registro que contengan "ERROR"
nl -b pERROR app.log | less

5.3 Procesamiento de documentos

Ejemplo

# Genera un documento Markdown con números de línea
nl -s ". " -w 2 -n rz README.md

6. Precauciones y consejos

  1. Manejo de líneas vacías: De forma predeterminadanlomite las líneas vacías; usa-b apara forzar la numeración de todas las líneas
  2. Procesamiento de archivos grandes: Para archivos muy grandes, considera combinarlo conlessoheadpara usar
  3. Uso con tuberías (pipes): Puede recibir entrada estándar, comocat file | nl
  4. Consistencia de formato: Se recomienda usar un conjunto fijo de parámetros en los scripts para garantizar un formato de salida uniforme
  5. Consideraciones de rendimiento: Para necesidades simples de numeración,cat -npuede ser más rápido

7. Ejercicios de resumen

7.1 Ejercicios propuestos

  1. Crea un archivo de pruebatest.txtque contenga 5 líneas de texto y 2 líneas vacías
  2. Usanlpara mostrar todos los números de línea (incluidas las líneas vacías)
  3. Establece que los números de línea comiencen en 100, con incremento de 5
  4. Usa "::" como separador, con un ancho de número de línea de 4
  5. Redirige el resultado anumbered.txt

7.2 Respuestas de referencia

Ejemplo

# Crea el archivo de prueba
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

Linux 命令大全Colección completa de comandos Linux

Otras extensiones