Cómo omitir la primera línea de un archivo usando 'AWK'

Cómo omitir la primera línea de un archivo usando 'AWK'

Hay varios usos del comando 'AWK' en Linux. Por ejemplo, se puede usar para imprimir el contenido de un archivo de texto. La primera línea de muchos archivos de texto contiene el encabezado del archivo y, a veces, la primera línea debe omitirse al imprimir el contenido del archivo. En este tutorial, le mostraremos cómo lograr esta tarea utilizando el comando 'AWK'.

Crear un archivo de texto

Para seguir junto con este tutorial, cree un archivo de texto delimitado por pestañas llamado lista de libros.TXT con el siguiente contenido. Este archivo contiene una lista de libros con sus autores correspondientes. En este tutorial, le mostraremos cómo imprimir diferentes partes de este archivo después de omitir la primera línea.

Ciberseguridad con Bash Paul Troncone, Carl Albing
Línea de comandos Kung Fu Jason Cannon
Línea de comandos de Linux Travis Booth
Bash en sencillos pasos Mike McGrath
Unix en sencillos pasos Mike McGrath

Ejemplo 1: omita la primera línea de un archivo usando NR y el operador '>'

La variable nr indica el número de registros en un archivo. El siguiente comando 'AWK' utiliza la variable NR para omitir la primera línea de un archivo. El valor de NR es 1 para la primera línea. El siguiente comando imprimirá líneas para las cuales el valor nr es mayor que 1.

$ Cat Booklist.TXT
$ awk '(nr> 1)' lista de libros.TXT

La siguiente salida se producirá después de ejecutar los comandos anteriores. La salida incluye todas las líneas que no sean la primera línea del archivo.

Ejemplo 2: omita la primera línea usando NR y '!= 'operador

El siguiente comando 'AWK' es similar al del ejemplo anterior. Sin embargo, el '!= 'El operador de comparación se usa aquí en lugar de'> '.

$ Cat Booklist.TXT
$ awk 'nr!= 1 'Lista de libros.TXT

La siguiente salida se producirá después de ejecutar los comandos anteriores. La salida muestra todas las líneas que no sean la primera línea del archivo.

Ejemplo 3: omita la primera línea de un archivo utilizando una declaración condicional

El siguiente comando 'AWK' imprimirá las líneas del archivo si la instrucción if es verdadera. Aquí, la declaración if será verdadera solo cuando el valor nr no sea igual a 1.

$ Cat Booklist.TXT
$ awk 'if (nr!= 1) imprimir 'Lista de libros.TXT

La siguiente salida se producirá después de ejecutar los comandos anteriores. La salida incluye todas las líneas, excepto la primera línea del archivo.

Ejemplo 4: imprima los nombres de libros desde el archivo pero omita la primera línea

En este ejemplo se usan dos comandos 'AWK' para imprimir todos los nombres de libros, excepto los primeros. El comando 'AWK' leerá la primera columna del archivo basado en el separador de campo (\ t) y enviará la salida al segundo comando 'AWK'. El segundo comando 'AWK' imprimirá la salida deseada.

$ Cat Booklist.TXT
$ awk -f "\ t" 'imprimir $ 1' Lista de libros.txt | Awk 'nr!= 1 imprimir '

La siguiente salida se producirá después de ejecutar los comandos anteriores. La salida muestra todos los nombres de libros, excepto el del primer libro.

Ejemplo 5: formatear el contenido del archivo después de omitir la primera línea

La opción '-f', la variable NR y la función printf se utilizan en el siguiente comando 'AWK' para generar salida formateada después de omitir la primera línea. El comando dividirá el contenido del archivo en columnas basadas en \ t, y printf imprimirá la primera y segunda columna cuando el valor nr sea al menos 2.

$ Cat Booklist.TXT
$ awk -f '\ t' 'nr> = 2 printf " %30s %20s \ n", $ 1, $ 2' Lista de libros.TXT

La siguiente salida se producirá después de ejecutar los comandos anteriores. La salida muestra el contenido formateado del archivo, excluyendo la primera línea del archivo.

Ejemplo 6: Imprima los nombres de libros después de omitir la primera línea usando NR y NF

El siguiente comando 'AWK' utiliza la opción '-f' y NR y NF para imprimir los nombres de los libros después de omitir el primer libro. La opción '-f' se utiliza para separar el contenido de la base de archivo en \ t. NR se usa para omitir la primera línea, y NF se usa para imprimir solo la primera columna.

$ Cat Booklist.TXT
$ awk -f '\ t' 'nr> 1 && nf = 1' Lista de libros.TXT

La siguiente salida se producirá después de ejecutar los comandos anteriores. La salida incluye todos los nombres de libros en el archivo, excepto el del primer libro.

Ejemplo 7: Imprima los nombres de autor formateados después de omitir la primera línea

El siguiente comando 'AWK' utiliza la opción '-f' y una declaración condicional para imprimir los nombres del autor después de omitir la primera línea. Aquí, el valor de NR se usa en la condición IF. Aquí, "Nombre del autor: \ n \ n" se imprimirá como la primera línea en lugar del contenido desde la primera línea. Los nombres del autor del archivo se imprimirán para los otros valores de NR.

$ Cat Booklist.TXT
$ awk -f '\ t' 'if (nr == 1) printf "\ nauthor name: \ n \ n"; else printf "%s \ n", $ 2 'Lista de libros.TXT

La siguiente salida se producirá después de ejecutar los comandos anteriores. La salida muestra el texto, "Nombre del autor:" con una nueva línea, y todos los nombres de los autores están impresos, excepto el primero.

Conclusión

La primera línea de un archivo se puede omitir utilizando varios comandos de Linux. Como se muestra en este tutorial, hay diferentes formas de omitir la primera línea de un archivo utilizando el comando 'AWK'. Totablemente, la variable NR del comando 'AWK' se puede usar para omitir la primera línea de cualquier archivo.