AWK – Ejemplos Básicos

AWK – Ejemplos Básicos

Anuncios

en Este capítulo se describen varios útil AWK comandos y sus correspondientes ejemplos. Considere un archivo de texto marcas.txt que se procesará con el siguiente contenido −

1) Amit Physics 802) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89

imprimir columna o campo

puede indicar a AWK que imprima solo ciertas columnas desde el campo de entrada., El siguiente ejemplo demuestra esto –

Example

$ awk '{print $3 "\t" $4}' marks.txt

al ejecutar este código, obtiene el siguiente resultado −

Output

Physics 80Maths 90Biology 87English 85History 89

en las marcas de archivo.txt, la tercera columna contiene el nombre del sujeto y la cuarta columna contiene las marcas obtenidas en un sujeto en particular. Imprimamos estas dos columnas usando el comando awk print. En el ejemplo anterior, $3 y 4 4 representan el tercer y el cuarto campos respectivamente del registro de entrada.

imprimir todas las líneas

de forma predeterminada, AWK imprime todas las líneas que coinciden con el patrón.,

Example

$ awk '/a/ {print $0}' marks.txt

al ejecutar este código, obtiene el siguiente resultado:

Output

2) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89

en el ejemplo anterior, estamos buscando el patrón de Formulario A. Cuando una coincidencia de patrón tiene éxito, ejecuta un comando desde el bloque body. En ausencia de un bloque de cuerpo, se toma la acción predeterminada que es imprimir el registro. Por lo tanto, el siguiente comando produce el mismo resultado −

ejemplo

$ awk '/a/' marks.txt

imprimir columnas por patrón

Cuando una coincidencia de patrón tiene éxito, AWK imprime todo el registro de forma predeterminada., Pero puede indicar a AWK que imprima solo ciertos campos. Por ejemplo, el siguiente ejemplo imprime el tercer y cuarto campo cuando una coincidencia de patrón tiene éxito.

ejemplo

$ awk '/a/ {print $3 "\t" $4}' marks.txt

al ejecutar este código, obtiene el siguiente resultado:

salida

Maths 90Biology 87English 85History 89

imprimir columna en cualquier orden

Puede imprimir columnas en cualquier orden. Por ejemplo, el siguiente ejemplo imprime la cuarta columna seguida de la tercera columna.,

ejemplo

$ awk '/a/ {print $4 "\t" $3}' marks.txt

al ejecutar el código anterior, obtiene el siguiente resultado:

salida

90 Maths87 Biology85 English89 History

contando e imprimiendo el patrón coincidente

veamos un ejemplo donde puede contar e imprimir el número de líneas para las que un patrón coincidente tuvo éxito.

Example

$ awk '/a/{++cnt} END {print "Count = ", cnt}' marks.txt

al ejecutar este código, obtiene el siguiente resultado:

Output

Count = 4

en este ejemplo, incrementamos el valor de contador cuando una coincidencia de patrón tiene éxito e imprimimos este valor en el bloque final., Tenga en cuenta que, a diferencia de otros lenguajes de programación, no es necesario declarar una variable antes de usarla.

imprimir líneas con más de 18 caracteres

imprimamos solo aquellas líneas que contengan más de 18 caracteres.

ejemplo

$ awk 'length($0) > 18' marks.txt

al ejecutar este código, se obtiene el siguiente resultado:

salida

3) Shyam Biology 874) Kedar English 85

AWK proporciona una función de longitud incorporada que devuelve la longitud de la cadena. La variable stores 0 almacena toda la línea y, en ausencia de un bloque body, se realiza la acción predeterminada, es decir, la acción print., Por lo tanto, si una línea tiene más de 18 caracteres, la comparación resulta verdadera y la línea se imprime.

Anuncios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *