Mostrar un fichero con las líneas numeradas con nl

Para mostrar un fichero con las líneas numeradas podemos usar cat, pero tenemos otro comando que también permite hacer esa misma función y cuenta con más opciones. Su uso más básico, que es escribir el comando e  indicarle el fichero a mostrar únicamente numerará las líneas con contenido, no numerando las líneas vacías:

nl fichero

Modificadores en nl

Para activar las opciones de nl tiene un curioso sistema de modificadores, ya que debemos escribir el modificador con un guión delante, como en casi todos los comandos, pero con el estilo anexado. Por ejemplo, para modificar la forma de numerar las líneas, está el modificador -b, pero con:

nl -b fichero

Nos dará el siguiente error:

nl: estilo de numeración de cuerpo inválido: «fichero»
Pruebe 'nl --help' para más información.

Por lo que tendremos que indicarle un estilo, a elegir entre los siguientes:

  • a -> numera todas las líneas
  • t -> numera sólo las líneas no vacías
  • n -> no numera las líneas
  • pERB -> numera sólo las líneas que contienen esa expresión regular básica

Como numerar sólo las líneas no vacías es el comportamiento por defecto de nl y para no numerar las líneas usaremos cat que es más cómodo, nos centraremos en las otras dos opciones, cómo numerar todas las líneas y cómo numerar las líneas que contengan cierta expresión.

Numerar todas las líneas

Para numerar todas las líneas tenemos que usar el modificador -b seguido del estilo a, por lo que tendremos que unir esa «a» con la «b», quedando así:

nl -ba fichero

El resultado que devuelve es igual a:

cat -n fichero

Numerar las líneas que contengan determinado patrón

Para numerar las líneas que cumplan una expresión regular básica, usaremos el modificador -b, seguido de p y la expresión regular a buscar. Por ejemplo, si queremos numerar las líneas que contienen el símbolo #, lo haremos con:

nl -bp# fichero

Y si queremos numerar las líneas que comiencen por #, le añadiremos ^ delante para indicar que queremos que muestre sólo las líneas que comienzan por ese patrón:

nl -bp^# fichero

Si lo que queremos es indicar el carácter de final de línea para que numere únicamente esas líneas, añadiremos un $ detrás del patrón, por lo que si queremos que numere sólo las líneas acabadas en #, escribiremos:

nl -bp#$ fichero

Para que numere sólo las líneas que no contienen nada, indicaremos el comienzo con ^ seguido del final con $ y nada entre el comienzo y el final:

nl -bp^$ fichero

No aumentar la numeración de uno en uno

Si queremos que la numeración de las líneas no aumente de uno en uno, sino de X en X, usaremos el modificador -i seguido de X. Así pues, si queremos que numere de 10 en 10 (1, 11, 21, 31…), escribiremos:

nl -i10 fichero

Y si queremos que numere todas las líneas, incluso las vacías, usaremos:

nl -ba -i10 fichero

Separar los números de las líneas

Otro curioso modificador de nl es el modificador -n, que modifica el formato de numeración, con estos tres formatos:

  • ln -> alinea a la izquierda la numeración, dejando las unidades a sólo los caracteres en blanco del contenido de las líneas (formato por defecto)
  • rn -> alinea a la derecha la numeración, separando las unidades del contenido de las líneas siete caracteres
  • rz -> numera con seis dígitos alineando a la derecha y escribiendo tantos ceros como sea necesario hasta llegar a los seis dígitos

Así, si queremos dejar más espacio del que muestra por defecto entre los números y el contenido de las líneas, usaremos:

nl -nln fichero

Rellenar con ceros la numeración

Si queremos rellenar con ceros hasta los seis dígitos, escribiremos:

nl -nrz fichero

Y si queremos que en lugar de los seis dígitos por defecto, numere con otra cantidad distinta de dígitos, usaremos el modificador -w seguido del número de dígitos a mostrar. Por ejemplo, si queremos que rellene con ceros hasta los tres dígitos, escribiremos:

nl -nrz -w3 fichero

 

 

 

 

 

Un comentario en «Mostrar un fichero con las líneas numeradas con nl»

Deja una respuesta

Tu dirección de correo electrónico no será publicada.