Awk

10 impresionantes ejemplos de comandos Awk

10 impresionantes ejemplos de comandos Awk
El comando Awk es una herramienta poderosa para procesar datos. Obtiene datos de entrada, los manipula y da resultados en salida estándar. Se pueden realizar varias operaciones en filas y columnas de un archivo.

Conocer los conceptos básicos 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". Primero revisemos la sintaxis:

$ awk [opciones] [archivo]

Algunas de las opciones más utilizadas se dan en la siguiente tabla:

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, a modo de demostración, he creado un archivo de texto con el nombre de testFile.TXT:

1. Cómo imprimir una columna de un archivo con el comando awk?

El comando "awk" se puede utilizar 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 'print $ 2' testFile.TXT

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

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

Si no usa la coma "," la salida no tendrá espacios:

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

2. Cómo usar expresiones regulares con el comando awk:

Para hacer coincidir las cadenas o cualquier expresión, usamos barras inclinadas "//", por ejemplo, si desea imprimir los nombres de las personas que están estudiando "Historia", use:

$ awk '/ History / print $ 2' testFile.TXT

El resultado muestra claramente que solo "Sam" y "Tommy" están estudiando el curso "Historia".

3. Cómo usar la expresión relacional con el comando "awk":

Para hacer coincidir el contenido de un campo específico, se puede utilizar una expresión relacional. Para hacer coincidir cualquier cadena o expresión con un campo, indique el campo y use el operador de comparación “~” con el patrón como se presenta en el siguiente comando:

$ awk '$ 3 ~ / is / print $ 2' testFile.TXT

El resultado anterior muestra todos los campos de la columna 2 frente a todos los campos que contienen "es" en la columna 3.

Y para obtener el resultado opuesto del comando anterior, use el "! ~ ”Operador:

$ awk '$ 3! ~ / is / print $ 2 'testFile.TXT

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

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

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

4. Cómo usar el patrón de rango con el comando awk:

También se puede utilizar un rango para la búsqueda; simplemente use la coma "," para separar el rango como se presenta en el comando mencionado 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 doble signo igual "==" para definir un rango; vea el ejemplo a continuación:

$ awk '$ 4 == 80, $ 4 == 90 imprimir $ 0' archivo de prueba.TXT

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

5. Cómo combinar un patrón usando un operador lógico:

El uso de operadores lógicos como OR “||” Y “&&” le permite combinar patrones para la búsqueda. Usa el siguiente comando

$ awk '$ 4> 80 && $ 6> 0.4 print $ 2 'testFile.TXT

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

6. Las expresiones especiales del comando awk:

Hay dos expresiones especiales, "EMPEZAR" y "FINAL”:

BEGIN: Para realizar una acción antes de que se procesen los datos

FIN: Para realizar una acción después de que se procesan los datos

$ awk 'BEGIN print "El procesamiento ha comenzado"; imprimir $ 2; END print "El procesamiento ha finalizado" 'testFile.TXT

7. 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 y el separador de registros de salida

Por ejemplo:

$ awk 'END print "El nombre del archivo es" FILENAME "tiene campos" NF "y" NR "records"' testFile.TXT

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

8. Cómo cambiar el separador de registros:

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

Tengamos otro archivo donde los campos de datos están separados por una coma y dos puntos ":":

$ cat testFile2.TXT
$ awk 'BEGIN FS = “:” print $ 2' testFile2.TXT

Dado que el separador del archivo es dos puntos, pero el comando "awk" incluso es beneficioso para archivos como este, simplemente use la opción "FS".

La "-F" también se puede utilizar:

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

El separador de registros predeterminado es "nueva línea" y para establecer el separador de registros en ":", utilice:

$ awk 'BEGIN RS = “:” print $ 1' testFile2.TXT

9. Acciones Awk:

Las acciones Awk son programas pequeños que están rodeados por corchetes "" y tienen más de una declaración separada por punto y coma ";".

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 entre comillas:

$ awk '"El es un campo," $ 2' archivo de prueba.TXT

Realicemos una operación de suma simple usando awk:

$ awk 'suma + = $ 4 END printf "% d \ n", suma' archivo de prueba.TXT

10. Creando un programa awk:

Comencemos con la programación "awk", la programación que se da a continuación es simplemente multiplicar:

EMPEZAR
i = 2
mientras (j<4)

imprimir “La multiplicación de 2 con” j “es” i * j;
j++

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

$ awk -f myCode.awk

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, comprendemos los conceptos básicos del comando "awk" y su uso. El comando "awk" valida datos, genera informes e incluso analiza archivos. El uso de comandos simples "awk" también permite a los usuarios escribir pequeños programas para procesar datos de manera más eficiente.

Las mejores aplicaciones de mapeo de gamepad para Linux
Si te gusta jugar juegos en Linux con un gamepad en lugar de un sistema de entrada de teclado y mouse típico, hay algunas aplicaciones útiles para ti....
Herramientas útiles para jugadores de Linux
Si le gusta jugar juegos en Linux, es probable que haya utilizado aplicaciones y utilidades como Wine, Lutris y OBS Studio para mejorar la experiencia...
Juegos HD remasterizados para Linux que nunca tuvieron un lanzamiento de Linux antes
Muchos desarrolladores y editores de juegos están creando una remasterización HD de juegos antiguos para extender la vida útil de la franquicia, por f...