Este artículo lo ejecutará a través de algunos comandos AWK interesantes y cuándo usarlos. Sigue leyendo para averiguar! Introducción a AWK
Awk es un idioma popular en Unix y Linux. Recibió su nombre de sus autores: Alfred Aho, Peter Weinberger y Brian Kernighan. El comando AWK permite el acceso al lenguaje de programación AWK, que está diseñado para procesar datos dentro de los flujos de texto.
Utilizado popularmente para patrones de escaneo y simplificar operaciones complejas, AWK lo ayuda a escribir declaraciones efectivas para definir patrones de texto en un archivo. El comando AWK luego procesa estas declaraciones leyendo una línea a la vez y toma una acción basada en la condición dada.
En pocas palabras, AWK encuentra y reemplaza el texto, y ayuda a clasificar, validar o indexar los datos dados.
Características de AWK
AWK viene con muchas características únicas:
- No es necesaria una compilación en AWK
- A menudo utilizado para la extracción de datos
- Comúnmente utilizado para realizar la manipulación de texto
- Ayuda a generar resultados según sea necesario.
Ahora exploremos el poder de los comandos AWK.
15 comandos interesantes de AWK
Aquí hay una lista compilada de algunos comandos AWK interesantes:
- Impresión de números aleatorios en un conjunto - Supongamos que desea imprimir algunos números aleatorios desde un grupo seleccionado. Puede especificar la cantidad de números aleatorios de este grupo y pedirle awk que imprima esto. Aquí hay un ejemplo: imprimamos 10 números de 0 a 1000. Entonces el comando AWK para esto será el siguiente: AWK 'Begin para (i = 1; i <= 10; i++)
Imprimir int (1001 * rand ()) '
- Buscando Foo o Bar - ¿Qué pasa si quieres escribir una línea en la que quieres realizar una búsqueda simple de Foo o Bar?? Aquí hay un comando que le permitirá hacer exactamente eso: if (/foo/||/bar/)
impresión "encontrado!"
- Reorganizar un campo - Si desea imprimir un campo en particular en un orden en particular, AWK puede hacerlo por usted. Supongamos que desea imprimir los primeros 5 campos de un conjunto particular en un campo por línea, puede usar el siguiente comando: AWK 'i = 1
mientras yo <= 3)
Imprimir $ I
i++
' fichero de entrada
- Dividir una línea - En cualquier conjunto de archivos, AWK puede ayudar a dividir una línea en campos, donde X es el nombre del campo: $ AWK 'imprimir $ x, $ x' xyz.TXT
- Ejecutando varios comandos a la vez - Para ejecutar varios comandos a la vez, puede usar un punto y coma para especificar ambos comandos: $ Echo "Buenos días! Jack "| Awk '$ 2 =" Jill "; Imprimir $ 0'
- Ejecución de un script AWK - Si desea ejecutar un script AWK desde un archivo en particular, puede crear un archivo SUM_COLUMN y pegar el script a continuación en ese archivo: #!/usr/bin/awk -f
Begin Sum = 0
sum = suma+$ x
Final suma de impresión En el script anterior, x es igual a la columna que necesita ingresar en el archivo. En la finalización exitosa de esta tarea, puede usar el siguiente comando para mostrar la suma de la columna X en el archivo de entrada:
AWK -F SUM_COLUMN INPUT_FILE.
- Usando -f - Al codificar, a menudo puede parecer poco práctico referirse a la terminal. AWK usa -f para realizar la búsqueda de un archivo: script AWK -f -f.AWK InputFile
- Realización de funciones matemáticas - También puede usar AWK para funciones matemáticas simples: AWK 'Sum = $ 2 + $ 3 + $ 4; AVG = suma / 3
> Imprimir calificaciones de $ 1, AVG '
- Hola mundo en Awk - Puede imprimir un simple mundo de hola en AWK usando el siguiente comando: AWK "Begin Imprimir" Hello World!!""
También puedes crear un programa Hello World. El siguiente código no solo imprimirá el mensaje de saludo ubicuo, sino que también generará información de encabezado:
$ awk 'begin imprimir "Hello World!" '
- Impresión del número total de bytes - Puede averiguar los bytes totales utilizados por los archivos utilizando el siguiente comando: LS -L . | Awk 'x += $ 5; FIN \
imprimir "bytes totales:" x '
Bytes totales: 7449362
- Anonimizando un registro de apache - Puede usar el siguiente código para anonimizar un registro de Apache: Cat Apache-Anon-Noadmin.registro | \
Función AWK 'ri (n) \
return int (n*rand ()); \
Begin srand (); si (! \
($ 5 en Jack)) \
Jack [$ 5] = sprintf ("%D.%d.%d.%d", \
RI (255), RI (255) \
, RI (255), RI (255)); \
$ 5 = Jack [$ 5]; Imprima __G5_Token5B610BA53DBE4 '
- Operando en filas - Si tiene una dirección que le gustaría ordenar en filas, puede hacerlo usando el siguiente comando: begin rs = ""; Fs = "\ n"
Imprimir "Nombre es:", $ 1
Imprimir "La dirección es:", $ 2
Imprimir "Ciudad y estado son:", $ 3
imprimir ""
- Usando el bucle while - El bucle mientras se mantiene ejecutando la acción que se le dio en un proceso repetido hasta que la condición sea verdadera. Por ejemplo, para imprimir números del 1 al 100, puede usar el siguiente código: AWK 'Begin i = 1; mientras yo < 100) print i; ++i '
- Usando el bucle do-while - En este bucle, la condición se ejecuta al final del bucle incluso si la declaración es falsa. Por ejemplo, para imprimir números de 1 a 100 usando un bucle do-while, puede usar el siguiente código: AWK 'Begin i = 1; hacer imprimir i; ++ i mientras (yo < 100) '
- Usando Begin and End - La palabra clave BEGIN se usa para crear un encabezado para procesar su registro: $ AWK 'BEGIN PRIMA "XXX"
De la misma manera, la palabra clave final se usa después de procesar los datos:
End imprimir "Paso de archivo" '
Esto concluye la lista de 15 comandos AWK interesantes. Puedes probarlos y ver los resultados. Esperamos que te sea útil. Si le pareció interesante este artículo, puede explorar Mastering Linux Shell Scripting - Segunda edición. En este libro, descubrirá todo lo que necesita saber para dominar las secuencias de comandos y tomar decisiones informadas sobre los elementos que emplea.