¿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!