about-agregar-lineas

En el siguiente artículo vamos a ver algunas formas de añadir los números de línea a los archivos de texto que visualicemos desde la terminal. Si alguna vez te has preguntado cómo agregar estos números de línea a la salida estándar de archivos de texto de tu Gnu/Linux, este breve artículo va a intentar explicar diferentes maneras de hacerlo.

Hay varias maneras de agregar los números de línea a un archivo de texto. A continuación vamos a ver 6 métodos diferentes para hacerlo. Imagino que además de los que a continuación se van a poder ver, habrá algunas otras maneras, pero para empezar, estas son suficientes.

Agregar números de línea a la salida estándar de archivos de texto

Para empezar, vamos a crear un archivo llamado archivo.txt. En el añadiré unas cuantas líneas para dar contenido, las cuales estarán identificadas. Para ver el contenido del archivo que acabo de crear, abriremos la terminal (Ctrl+Alt+T) y escribimos en ella:

cat-lineas

cat archivo.txt

Usando el comando nl

Como puede verse en el resultado del comando cat, el archivo tiene 10 líneas, con tres de ellas vacías. Agregaremos los números de línea mediante el comando nl. Para hacerlo, ejecuta:

nl-lineas

nl archivo.txt

Como se ha podido ver en la anterior captura, el comando nl no tiene en cuenta las líneas vacías. Solo agrega los números a líneas no en blanco. Si quieres numerar todas las líneas, incluidas las líneas en blanco, ejecuta:

nl-b-a-lineas

nl -b a archivo.txt

Además, para una mayor claridad a la hora de leer el resultado, podremos agregar un símbolo después de los números. Por ejemplo, para agregar un punto después de los números, ejecuta:

nl-s-punto-lineas

nl -s "." archivo.txt

Es posible que desees alinear el ancho de la salida. Para hacerlo, usa la opción -w con un valor variable como se muestra a continuación:

nl-w3-lineas

nl -w3 archivo.txt

Usando el comando cat

El comando cat se usa para mostrar el contenido de un archivo, como se ha podido ver en la primera captura de este artículo. Si deseas agregar números a la salida de un archivo, usa -n como se muestra a continuación:

cat-n-lineas

cat -n archivo.txt

Es posible que te pueda interesar pasar la salida estándar a un archivo nuevo. Para hacerlo solo tienes que ejecutar el comando como se muestra a continuación:

cat -n archivo.txt > nuevoarchivo.txt

Usando el comando awk

Este es quizás el método más complejo para el resultado obtenido. Para agregar números de línea a la salida de un archivo usando el comando awk, ejecuta:

awk-lineas

awk 'BEGIN{i=1} /.*/{printf "%d.% s\n",i,$0; i++}' archivo.txt

Como se ha visto, he asignado el número inicial como 1 en el parámetro BEGIN. Podremos asignar cualquier otro número inicial a tu elección, por ejemplo 5, como se puede ver a continuación:

awk-comienzo-en-5

awk 'BEGIN{i=5} /.*/{printf "%d.% s\n",i,$0; i++}' archivo.txt

Utiliza el siguiente comando si no quieres tener en cuenta las líneas en blanco:

awk-sin-lineas-en-blanco

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

Si crees que los comandos anteriores son un poco difíciles de recordar, utiliza el siguiente comando, que te dará el mismo resultado que el primero de los mostrados con el comando AWK:

awk-FNR

awk '{ print FNR " " $0 }' archivo.txt

Usando el comando sed

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

sed-lineas

sed '/./=' archivo.txt | sed '/./N; s/\n/ /'

El comando sed tiene una característica genial que hay que mencionar. Podemos mostrar una línea en concreto de un archivo. Por ejemplo, para mostrar la séptima línea de nuestro archivo, ejecuta:

sed-lina-concreta

sed -n 7p archivo.txt

Usando el comando less

Para añadir el número con la salida estándar de un archivo usando less, ejecuta:

less-N

less -N archivo.txt

Usando el comando grep

El comando grep se puede utilizar para buscar una línea que contenga un texto específico. Si deseas agregar los números de línea a las líneas que contienen el texto que se busca, ejecuta:

greep-n

grep -n "línea" archivo.txt

Hay que tener en cuenta que este comando solo agregará los números a las líneas que contienen la cadena de búsqueda. Además, como se ve en la captura, colorea el texto buscado. Todo lo demás en el archivo dado se omitirá.

Y eso es todo, aun que hay que decir que estos comandos tienen otras opciones que pueden complementar o ampliar las que se han descrito en este artículo. Para obtener más información sobre los comandos que aquí se han nombrado, se pueden consultar las páginas man.

 

Fuente: ubunlog

¿Quién está en línea?

Hay 10112 invitados y ningún miembro en línea