GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo agregar números de línea a archivos de texto en Linux

¿Alguna vez se preguntó cómo agregar números de línea a la salida estándar de los archivos de texto? Esta breve guía explica cómo puede agregar números de línea a un archivo de texto determinado. Hay varias formas de agregar números de línea a un archivo. Aquí he cubierto 6 métodos diferentes para hacerlo. Seguiré agregando más métodos si encuentro alguno en el futuro. Mejor marque esta guía y vuelva más tarde para ver si hay alguna adición.

Método 1 - Usando el comando 'nl'

El comando "nl" está dedicado a agregar números de línea a un archivo. Escribe el archivo dado en la salida estándar, con números de línea agregados. Tengo un archivo llamado file.txt con los siguientes contenidos.

$ cat file.txt 
This is line1
This is line2
This is line3

This is line5


This is line8

Como puede ver en el resultado anterior, el archivo tiene 8 líneas, con tres líneas vacías. Agreguemos los números de línea.

Para hacerlo, ejecute:

 $ nl file.txt
 1 This is line1
 2 This is line2
 3 This is line3
 
 4 This is line5
 
 
 5 This is line8

El comando nl no tendrá en cuenta las líneas vacías. Solo agregará los números a las líneas que no estén en blanco. Si desea numerar todas las líneas, incluidas las líneas en blanco, use -b marca como a continuación.

 $ nl -b a file.txt 
 1 This is line1
 2 This is line2
 3 This is line3
 4 
 5 This is line5
 6 
 7 
 8 This is line8

Además, puede agregar un símbolo/caracteres especiales después de los números. Por ejemplo, para agregar un punto (.) después de los números, ejecute:

 $ nl -s "." file.txt 
 1.This is line1
 2.This is line2
 3.This is line3
 
 4.This is line5
 
 
 5.This is line8

Es posible que desee alinear el ancho de la salida. Para hacerlo, use el indicador -w como se muestra a continuación.

$ nl -w2 file.txt

Método 2:usar el comando 'gato'

El comando cat se usa para mostrar el contenido de un archivo. Si desea agregar números a la salida de un archivo, use el indicador -n como se muestra a continuación.

 $ cat -n file.txt 
 1 This is line1
 2 This is line2
 3 This is line3
 4 
 5 This is line5
 6 
 7 
 8 This is line8

Alternativamente, puede pasar la salida estándar a un nuevo archivo como se muestra a continuación.

$ cat -n file.txt > newfile.txt

También es posible que desee deshacerse de las líneas vacías repetidas.

 $ cat -s -n file.txt 
 1 This is line1
 2 This is line2
 3 This is line3
 4 
 5 This is line5
 6 
 7 This is line8

Método 3:usar el comando 'awk'

Para agregar números de línea a la salida de un archivo usando el comando awk, ejecute:

$ awk 'BEGIN{i=1} /.*/{printf "%d.% s\n",i,$0; i++}' file.txt 
1.This is line1
2.This is line2
3.This is line3
4.
5.This is line5
6.
7.
8.This is line8

Como puede notar, asigné el número inicial como 1 en el parámetro BEGIN. Puede asignar cualquier otro número inicial de su elección, por ejemplo 5, como se muestra a continuación.

$ awk 'BEGIN{i=5} /.*/{printf "%d.% s\n",i,$0; i++}' file.txt 
5.This is line1
6.This is line2
7.This is line3
8.
9.This is line5
10.
11.
12.This is line8

Utilice el siguiente comando si no desea tener en cuenta las líneas en blanco:

$ awk 'BEGIN{i=0} {if($0 !~ /^$/) {printf ("%d.%s \n",i,$0); i++} else { print $0} } ' file.txt

Si cree que los comandos anteriores son un poco difíciles de recordar, use el siguiente comando en su lugar.

$ awk '{ print FNR " " $0 }' file.txt 
1 This is line1
2 This is line2
3 This is line3
4 
5 This is line5
6 
7 
8 This is line8

Si desea aumentar el espacio entre los números y el texto, ejecute:

$ awk '{ print FNR "\t " $0 }' file.txt

Método 4:usar el comando 'sed'

Para agregar números de línea a una salida estándar de un archivo usando el comando sed, ejecute:

$ sed '/./=' file.txt | sed '/./N; s/\n/ /'
1 This is line1
2 This is line2
3 This is line3

5 This is line5


8 This is line8

El comando sed tiene una característica genial que me gusta más. Podemos mostrar una N línea de un archivo. Por ejemplo, para mostrar la tercera línea de un archivo, ejecute:

$ sed -n 3p file.txt 
This is line3

Método 5 - Usando el comando 'menos'

Para alinear el número a la salida estándar de un archivo usando el comando menos, ejecute:

 $ less -N file.txt 
 1 This is line1
 2 This is line2
 3 This is line3
 4 
 5 This is line5
 6 
 7 
 8 This is line8

Método 6 - Usando el comando 'grep'

El comando grep se puede utilizar para buscar una línea que contenga una línea específica. Si desea agregar los números de línea a una línea que tiene una letra específica, por ejemplo, línea , ejecuta:

$ grep -n "line" file.txt 
1:This is line1
2:This is line2
3:This is line3
5:This is line5
8:This is line8

Tenga en cuenta que este comando solo agregará los números a las líneas que contienen la cadena de búsqueda. Todo lo demás en el archivo dado será omitido.

Y eso es todo. Para obtener más detalles sobre los comandos anteriores, consulte las páginas man. Ahora conoce los diferentes métodos para agregar números de línea a los archivos de texto. Espero que encuentres esto útil. Más cosas buenas por venir. ¡Estén atentos!

¡Salud!


Linux
  1. Cómo agregar texto al final del archivo en Linux

  2. Cómo eliminar archivos y directorios en Linux desde la línea de comandos

  3. Cómo unir dos archivos de texto en Linux

  4. Crear archivos usando la línea de comando en Linux

  5. 11 ejemplos de comandos diff3 de Linux (comparar 3 archivos línea por línea)

Cómo comparar y fusionar archivos de texto en Linux

Cómo cambiar el nombre de un archivo (s) en Linux

Cómo dividir un archivo grande en partes en números de línea dados

Cómo agregar texto al comienzo del archivo en Linux

Cómo encontrar archivos que contengan una cadena de texto específica en Linux

Cómo comprimir un archivo en Linux