Top 10 Impresionantes ejemplos de comando AWK

Top 10 Impresionantes ejemplos de comando AWK
El comando AWK es una herramienta poderosa para procesar datos. Obtiene datos de entrada, los manipula y proporciona resultados en la salida estándar. Se pueden realizar varias operaciones en filas y columnas de un archivo.

Conocer los elementos esenciales del comando "AWK" es muy importante cuando se trata de procesar datos de manera eficiente, y esta publicación cubre las características clave del comando "AWK". Verifiquemos primero la sintaxis:

$ awk [opciones] [archivo]

Algunas de las opciones de uso común se dan en la tabla a continuación:

Opción Descripción
-F Para especificar un separador de archivos
-F Especifique el archivo que contiene el script "AWK"
-V Para asignar variable

Echemos un vistazo a algunos ejemplos sobre el uso del comando "AWK", y para la demostración, he hecho un archivo de texto con el nombre de archivo de prueba.TXT:

Cómo imprimir una columna de un archivo con el comando AWK?

El comando "AWK" se puede usar para obtener una columna específica del archivo de texto. Para imprimir el contenido del uso del archivo:

$ Cat TestFile.TXT

Ahora, para imprimir la segunda columna del archivo, use:

$ awk 'imprimir $ 2' Testfile.TXT

Para imprimir más de un campos, use el comando:

$ awk 'imprimir $ 1, $ 2, $ 3' Testfile.TXT

Si no usa la coma "", entonces la salida estará sin espacios:

$ awk 'imprimir $ 1 $ 2 $ 3' Testfile.TXT

Cómo usar la expresión regular con el comando AWK:

Para que coincidan con las cadenas o cualquier expresión, usamos cortes "//", por ejemplo, si desea imprimir los nombres de las personas que estudian "historia", luego use:

$ AWK '/ HISTORIA/ Imprimir $ 2' TestFile.TXT

La salida muestra claramente que solo "Sam" y "Tommy" están estudiando el curso de "historia".

Cómo usar la expresión relacional con el comando "AWK":

Para que coincida con el contenido de un campo específico, se puede usar la expresión relacional. Para que coincida con cualquier cadena o expresión en un campo, indique el campo y use el operador de comparación "~" con el patrón presentado en el siguiente comando:

$ awk '$ 3 ~/ is/ imprimir $ 2' Testfile.TXT

La salida anterior que muestra cada campo en la columna 2 en cada campo que contiene "IS" en la columna 3.

Y para obtener la salida opuesta del comando anterior, use el "! ~ ”Operador:

$ AWK '$ 3! ~/ is/ imprimir $ 2 'Testfile.TXT

A modo de comparación, también podemos usar operadores como mayores que ">" y menos que "<” and equal “=” as well:

$ awk '$ 4> 70 imprimir $ 2' Testfile.TXT

La salida ha imprimido los nombres de las personas que obtuvieron marcas de más de 70.

Cómo usar el patrón de rango con el comando AWK:

También se puede usar un rango para la búsqueda; Simplemente use la coma "" para separar el rango presentado en el comando a continuación:

$ awk '/Joel/,/Marlene/imprimir $ 3' Testfile.TXT

La salida muestra los sujetos del rango de "Joel" a "Marlene" de la columna 2. Podemos usar el signo doble igual "==" para definir un rango; Vea el ejemplo a continuación:

$ awk '$ 4 == 80, $ 4 == 90 imprimir $ 0' Testfile.TXT

La salida muestra los nombres de las personas de la columna 2 para el rango de marcas "70 a 80" de la columna 4.

Cómo combinar el patrón usando el operador lógico:

El uso de operadores lógicos como o "||," y "&&" le permiten combinar patrones para la búsqueda. Use el siguiente comando

$ awk '$ 4> 80 && $ 6> 0.4 imprimir $ 2 'Testfile.TXT

El comando anterior imprime los nombres de las personas en el cuarto campo más significativo que 80 y el sexto campo mayor que 0.4. Y solo dos registros están cumpliendo la condición.

El comando AWK Expresiones especiales:

Hay dos expresiones especiales, "COMENZAR" y "FIN":

Comenzar: realizar una acción antes de procesarse los datos

Fin: para realizar una acción después de procesarse los datos

$ awk 'begin imprimir "El procesamiento ha comenzado"; imprimir $ 2; Final imprimir "procesamiento ha terminado" 'Testfile.TXT

La útil variable incorporada del comando AWK:

El comando AWK tiene varias variables que ayudan en el procesamiento de datos:

Variable Descripción
NF Da el número de campos en los datos
Nr Da el número del registro actual
NOMBRE DEL ARCHIVO Muestra el nombre del archivo que se está procesando actualmente
FS y OFS Separador de campo y separador de campo de salida
Rs y Ors Separa el registro de registro y el separador de registro de salida

Por ejemplo:

$ AWK 'End imprima "el nombre del archivo es" nombre de archivo "tiene" NF "campos y" nr "registros"' testFile.TXT

Usamos "Fin", pero si usa "Begin", la salida daría 0 campos y 0 registros.

Cómo cambiar el separador de registros:

El separador predeterminado en el registro suele ser espacio; Si hay una coma "," o punto "."Como separador de campo, use la opción" FS "junto con el separador.

Tengamos otro archivo donde los campos de datos estén separados por un colons de coma ":":

$ Cat TestFile2.TXT
$ awk 'begin fs = “:” imprimir $ 2' testFile2.TXT

Dado que el separador del archivo es un colon, pero el comando "AWK" incluso beneficioso para los archivos como este, simplemente use la opción "FS".

El "-f" también se puede usar:

$ awk -f “:” 'imprimir $ 2' testFile2.TXT

El separador de registro predeterminado es "Newline" y para establecer el separador de registros en ":", Usar:

$ awk 'begin rs = “:” imprimir $ 1' testFile2.TXT

Acciones AWK:

Las acciones de AWK son pequeños programas que están rodeados de brackets "" y tienen más de una declaración separada por los semicolones ";".

La declaración más utilizada con el comando "AWK" es la declaración "Imprimir". Por ejemplo, para imprimir un texto con cada registro, use una cadena de texto en cotizaciones:

$ awk '"el es un campo", $ 2' Testfile.TXT

Realicemos una operación de suma simple usando AWK:

$ awk 'sum += $ 4 end printf "%d \ n", sum' TestFile.TXT

Creación de un programa AWK:

Comencemos con la programación "AWK", la programación que se proporciona a continuación es simplemente hacer multiplicación:

COMENZAR
i = 2
mientras (J<4)

Imprima "La multiplicación de 2 con" j "is" i*j;
j++

Guarde el programa con el nombre de "mi código.asombrarY para ejecutarlo, abra terminal y escriba:

$ awk -f mycode.asombrar

Conclusión:

El comando "AWK" es un comando útil para procesar, escanear datos de archivos de texto, como separar cualquier campo particular de un archivo; Usamos el comando "AWK". Hace que sea más fácil buscar cualquier cosa en cualquier forma o patrón de los archivos de texto. En esta guía, entendemos los conceptos básicos del comando "AWK" y su uso. El comando "AWK" valida los datos, genera informes e incluso archivos PARSES. El uso de comandos simples "AWK" también permite a los usuarios escribir pequeños programas para procesar datos de manera más eficiente.