Empezando con Gawk
Si está utilizando las últimas versiones de Linux, Gawk debe instalarse de forma predeterminada. Puede verificar revisando su versión.
Hay diferentes formas de usar gawk. Las funcionalidades comunes son las siguientes:
La sintaxis básica para BAWK es:
$ gawk [opciones de estilo Posix / GNU] -f program_file [ -] archivo
$ gawk [opciones de estilo Posix / GNU] [ -] 'Programa' Archivo ..
Para usar gawk, usas el -F opción para especificar un archivo de script o especificar el script en la línea de comando directamente.
Hay tres opciones importantes para tener en cuenta al usar GAWK:
1. -File F, -file = archivo: Usado cuando desea usar comandos gawk y leer desde un archivo. El archivo es el script.
2. -v var = val, -assign = var = val: Utilizado cuando necesita asignar un valor a una variable antes de ejecutar un script.
3. -F fs, -field -separator = FS: El valor de la variable predefinida FS se utiliza como separador para el campo de entrada.
Variables incorporadas
Gawk ofrece variables incorporadas como:
FS: Utilizado al dividir archivos y contiene el carácter de separador de campo.
Rs: Contiene el separador de personajes actual.
Ofs: Contiene el separador de campo de salida que separa los campos que AWK imprime.
NF: El número de campos para el registro de entrada se almacena en el NF.
OR: Contiene el separador de campo de salida que separa las líneas de salida impresas por AWK.
NR: Contiene el número total de líneas de entrada.
En el ejemplo anterior, usamos * como separador para las líneas de entrada en el archivo.
Ejemplo de uso de gawk
1. -F
Para ordenar un archivo de texto e imprimir los primeros tres campos separados por colon, use el siguiente comando. Tenga en cuenta que usamos el pasada Como nuestro archivo aquí:
$ gawk -f: 'imprimir $ 1; imprimir $ 2; Imprima $ 3 ' /etc /passwd
Aquí, nuestro separador es un colon completo. Como queremos los primeros tres campos, los especifica como se muestra en el ejemplo anterior. Puede ajustarlo y usar un separador diferente y un número diferente de campos.
2. -F
Para especificar la fuente del programa AWK desde un archivo, use el indicador -f seguido del archivo:
$ gawk -f: -f file1.txt /etc /passwd
3. Impresión de contenido de un archivo
El uso de GAWK en un archivo imprime todas las líneas de datos en el archivo.
4. Trabajando con patrones
También puede usar gawk e imprimir solo las líneas que coinciden con un patrón dado. Por ejemplo, para imprimir una línea que contiene una palabra en particular, en nuestro caso la palabra es kim, El comando sería:
$ gawk '/ kim/ print' nombre de archivo
Aquí, el patrón también puede ser un personaje. Por ejemplo, para imprimir todas las líneas que contienen un colon, el comando sería como en la siguiente imagen:
También puede especificar las líneas específicas para imprimir. Por ejemplo, para imprimir las líneas que contienen caracteres específicos como más de 6, la sintaxis es:
$ gawk 'longitud ($ 0)> 6' nombre de archivo
5. Dividir líneas en campos
Gawk, por defecto, imprime cada campo cuando imprime líneas en un archivo. Sin embargo, puede especificar qué campo imprimir. El primer campo se almacena en el $ 1 y toda la línea se representa como $ 0. Por defecto, toda la línea se imprime a menos que especifique para separar los campos en función del espacio en blanco.
Por ejemplo, para separar las líneas e imprimir solo el segundo campo de cada línea, el comando sería:
$ gawk 'imprimir $ 2' nombre de archivo
Para agregar los números de línea, agregue el Nr variable.
El nuevo comando sería:
$ gawk 'print nr, $ 2' nombre de archivo
6. Obtenga el número de líneas
Es posible que deba obtener el número total de líneas para archivos grandes, y puede lograrlo utilizando la siguiente sintaxis:
$ gawk 'end print nr' nombre de archivo
Conclusión
Saber cómo usar Gawk en Linux es divertido y útil, especialmente cuando se trata de datos de texto. Puede usar los diferentes patrones para extraer y manipular las líneas de datos. Con suerte, los ejemplos cubiertos en este artículo le dan una ventaja y abren los ojos al usar BAWK para diferentes actividades.