Awk detallada

  
 

AWK es una excelente herramienta de procesamiento de texto. No es solo uno de los motores de procesamiento de datos más potentes disponibles en Linux, sino también en cualquier entorno. La funcionalidad máxima de este lenguaje de programación y manipulación de datos (que lleva el nombre de las primeras letras de sus fundadores Alfred Aho, Peter Weinberger y Brian Kernighan) depende del conocimiento de una persona. AWK proporciona características extremadamente potentes: carga de estilo, control de flujo, operadores matemáticos, declaraciones de control de procesos e incluso variables y funciones integradas. Tiene casi todas las características finas que debe tener un lenguaje completo. De hecho, AWK tiene su propio lenguaje: el lenguaje de programación AWK, que ha sido definido oficialmente por los tres creadores como "lenguaje de procesamiento y escaneo de estilo". Le permite crear programas cortos que leen archivos de entrada, clasifican datos, procesan datos, realizan cálculos en las entradas y generan informes, así como muchas otras características.

Es posible que esté familiarizado con UNIX, pero puede ser extraño para awk, lo que no es sorprendente. De hecho, en comparación con sus excelentes características, awk está lejos de alcanzar su popularidad. ¿Qué es awk? A diferencia de la mayoría de los demás comandos UNIX, es imposible conocer la función de awk a partir del nombre: no es una palabra en inglés con significado independiente ni una abreviatura para varias palabras relacionadas. De hecho, awk es la abreviatura de tres nombres: Aho, (Peter) Weinberg y (Brain) Kernighan. Son estas tres personas las que crearon awk: una excelente herramienta de escaneo y procesamiento.

En su forma más simple, AWK es una herramienta de lenguaje de programación para trabajar con texto. AWK es similar al lenguaje de programación de shell en muchos aspectos, aunque AWK tiene su propia sintaxis. Sus ideas de diseño se derivan del lenguaje efectivo diseñado por SNOBOL4, sed, Marc Rochkind, las herramientas de lenguaje yacc y lex, y por supuesto algunas ideas excelentes del lenguaje C. Cuando se creó AWK originalmente, su propósito era el procesamiento de texto, y la base de este lenguaje era ejecutar una serie de instrucciones siempre que hubiera una coincidencia de patrones en los datos de entrada. La utilidad explora cada línea del archivo en busca de patrones que coincidan con lo que se da en la línea de comandos. Si se encuentra una coincidencia, continúe con el siguiente paso de programación. Si no se encuentra ninguna coincidencia, continúe procesando la siguiente línea.

Aunque la operación puede ser complicada, la sintaxis del comando siempre es:

awk '{patrón + acción}' {nombres de archivo}

donde patrón representa AWK en los datos El contenido que se busca y la acción es una serie de comandos que se ejecutan cuando se encuentra una coincidencia. Las llaves ({}) no necesitan aparecer todo el tiempo en el programa, pero se usan para agrupar una serie de instrucciones de acuerdo con un patrón en particular.

gawk es la versión GNU de AWK.

Primero, ¿cuál es la función de AWK?

Junto con sed y grep, awk es una herramienta de escaneo y procesamiento de estilo. Pero su función es mucho más fuerte que sed y grep. Awk proporciona características extremadamente potentes: puede hacer casi todo lo que grep y sed pueden hacer, y también puede realizar carga de estilos, control de flujo, operadores matemáticos, declaraciones de control de procesos e incluso variables y funciones integradas. . Tiene casi todas las características finas que debe tener un lenguaje completo. De hecho, awk tiene su propio lenguaje: el lenguaje de programación awk, que los tres creadores de awk han definido oficialmente como: escaneo de estilos y lenguajes de procesamiento.

Segundo, ¿por qué usar awk?

Aun así, todavía puedes preguntar, ¿por qué debería usar awk?

La primera razón para usar awk es el texto. Lo que hacemos a menudo es el análisis y el procesamiento de estilos. Awk hace algo como una base de datos, pero a diferencia de una base de datos, maneja archivos de texto. Estos archivos no tienen un formato de almacenamiento especial. Las personas normales pueden editarlos y leerlos. Entenderlos y manejarlos. Los archivos de base de datos tienden a tener formatos de almacenamiento especiales, lo que los hace necesarios para procesarlos con un controlador de base de datos. Dado que este tipo de procesamiento de base de datos se encuentra a menudo, deberíamos encontrar una forma simple y fácil de tratar con ellos. UNIX tiene muchas herramientas para esto, como sed, grep, sort y find, etc., awk es una de ellas. Muy buena

La segunda razón para usar awk es que awk es una herramienta simple, por supuesto que es relativa a sus poderosas funciones. De hecho, UNIX tiene muchas herramientas excelentes, como el lenguaje C de la herramienta de desarrollo nativo de UNIX y su continuación de C ++ es muy bueno. Pero en relación con ellos, awk es mucho más conveniente y más simple para lograr la misma función. Esto es primero porque awk ofrece soluciones para una variedad de necesidades: desde la línea de comandos awk para resolver problemas simples hasta el complejo y sofisticado lenguaje de programación awk, la ventaja de esto es que no tiene que usar métodos complicados para resolver el problema. Pregunta sencilla Por ejemplo, puede resolver un problema simple con una línea de comando y C no funciona. Incluso un programa simple, el lenguaje C debe estar escrito y compilado. En segundo lugar, el propio awk se interpreta y ejecuta, lo que hace que el programa awk no tenga que pasar por el proceso de compilación. Al mismo tiempo, también encaja bien con el programa shell script. Finalmente, awk en sí mismo es más simple que el lenguaje C. Aunque awk absorbe muchos componentes excelentes del lenguaje C, familiarizarse con el lenguaje C será de gran ayuda para aprender awk, pero awk en sí no necesita usar el lenguaje C — Pero las herramientas de desarrollo que requieren mucho tiempo para aprender a dominar sus habilidades.

La tercera razón para usar awk es que awk es una herramienta fácil de obtener. A diferencia de C y C ++, awk solo tiene un archivo (/bin /awk), y casi todas las versiones de UNIX proporcionan su propia versión de awk, por lo que no tiene que preocuparse por cómo obtener awk. Pero el lenguaje C no es el caso. Aunque el lenguaje C es una herramienta de desarrollo natural para UNIX, esta herramienta de desarrollo se lanza por separado. En otras palabras, debe pagar su versión UNIX de la herramienta de desarrollo en lenguaje C (excepto aquellos que usan la versión D. ), consíguelo e instálalo, entonces puedes usarlo.

Basándonos en las razones anteriores, junto con las potentes funciones de awk, tenemos motivos para decir que si desea abordar el trabajo relacionado con el escaneo de estilo de texto, awk debería ser su primera opción. Aquí hay una regla general a seguir: Si tiene dificultades con las herramientas de shell o los scripts de shell, intente awk. Si awk aún no puede resolver el problema, use el lenguaje C. Si el lenguaje C todavía falla, vaya a C ++.

Tres, método de llamada awk

Como se mencionó anteriormente, awk proporciona diferentes soluciones para satisfacer una variedad de necesidades, son:

1, línea de comandos awk, Puede usar awk como lo haría con los comandos normales de UNIX. También puede usar el lenguaje de programación awk en la línea de comandos. Aunque awk admite varias líneas de entrada, es un buen registro para ingresar una línea de comandos larga y asegurarse de que sea correcta. Es un dolor de cabeza, por lo que este método generalmente solo se utiliza para resolver problemas simples. Por supuesto, también puede hacer referencia a la línea de comandos awk o incluso a la secuencia de comandos awk en la secuencia de comandos shell.

Copyright © Conocimiento de Windows All Rights Reserved