Gawk Ejemplos de uso de secuencias de comandos

Gawk Ejemplos de uso de secuencias de comandos
Una forma de trabajar con archivos en Linux es usar un lenguaje de secuencias de comandos para administrar la automatización de tareas repetidas. Un ejemplo de un buen lenguaje de secuencias de comandos es asombrar lo que facilita la extracción de datos y el trabajo con patrones. La implementación de GNU del lenguaje de secuencias de comandos AWK es papar moscas. Si aún no ha llegado a un acuerdo con su uso, tiene suerte. Esta publicación presenta los diferentes ejemplos del uso de Gawk en Linux, y al final de esta guía, tendrá una sólida comprensión de trabajar con él.

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:

  • Formato de líneas de salida
  • Transformando archivos de datos
  • Escaneo de archivos por línea
  • Dividir la línea de entrada en los campos
  • Producción de informes formateados
  • Clasificación de datos

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.