Aprenda el comando de Linux – gawk


Nombre

gawk – lenguaje de escaneado y procesamiento de patrones

Sinopsis

gawk [ POSIX o GNU style options ] -f program-file [ [ ] file …
]. gawk [ POSIX o GNU style options ] [ ] program-text file ….

pgawk [ Opciones de estilo POSIX o GNU ] -f program-file [ ] file …
>. pgawk [ POSIX o GNU style options ] [ ] program-text file ….

Descripción

Gawk es la implementación del lenguaje de programación AWK del Proyecto GNU. Se ajusta a la definición del lenguaje en el estándar POSIX 1003.2 Command Language And Utilities. Esta versión a su vez se basa en la descripción en The AWK Programming Language, de Aho, Kernighan y Weinberger, con las características adicionales que se encuentran en la versión 4 de System V Release de UNIX awk. Gawk también proporciona extensiones más recientes de Bell Laboratories awk, y un número de extensiones específicas de GNU.

Pgawk es la versión de perfilado de gawk. Es idéntico en todos los sentidos a gawk, excepto que los programas se ejecutan más lentamente, y produce automáticamente un perfil de ejecución en el archivo awkprof.out cuando se hace. Consulte la opción –profile , a continuación.

La línea de comandos consiste en opciones para gawk mismo, el texto del programa AWK (si no se suministra a través de las opciones -f o –file ), y los valores que deben estar disponibles en las variables ARGC y ARGV predefinidas AWK.

Formato de opción

Las opciones Gawk pueden ser opciones POSIX tradicionales de una letra, u opciones largas al estilo GNU. Las opciones POSIX empiezan con una sola “-”, mientras que las opciones largas empiezan con “–”. Se proporcionan largas opciones tanto para las características específicas de GNU como para las características obligatorias de POSIX.

Siguiendo el estándar POSIX, las opciones específicas de gawk se suministran mediante argumentos a la opción -W . Múltiples -W opciones pueden ser suministradas Cada -W opción tiene una opción larga correspondiente, como se detalla a continuación. Los argumentos de las opciones largas se unen con la opción mediante un signo = , sin espacios intermedios, o se pueden proporcionar en el siguiente argumento de la línea de comandos. Las opciones largas pueden ser abreviadas, siempre y cuando la abreviatura siga siendo única.

Opciones

Gawk acepta las siguientes opciones, enumeradas alfabéticamente.

-F fs

–field-separator fs Utilice fs para el separador de campo de entrada (el valor de la variable predefinida FS ).

-v var = val

–assign var = val Asignar el valor val a la variable var, antes de que comience la ejecución del programa. Estos valores variables están disponibles para el bloque BEGIN de un programa AWK.

-f archivo de programa

–file program-file Leer la fuente del programa AWK desde el archivo de programa program-file, en lugar del primer argumento de la línea de comandos. Se pueden utilizar varias opciones -f (o –file ).

-mf NNNN

-mr NNN Establecer varios límites de memoria para el valor NNNN. El indicador f fija el número máximo de campos, y el indicador r fija el tamaño máximo de registro. Estas dos banderas y la opción -m son de la versión de investigación de Bell Laboratories de UNIX awk. Son ignorados por gawk, ya que gawk no tiene límites predefinidos.

-W compat

-W tradicional

–compat

–tradicional Ejecutar en modo compatibilidad. En el modo de compatibilidad, gawk se comporta de forma idéntica a UNIX awk; no se reconoce ninguna de las extensiones específicas de GNU. Se prefiere el uso de –tradicional sobre las otras formas de esta opción. Vea EXTENSIONES DE GNU , abajo, para más información.

-W copyleft

-W copyright

–copyleft

–copyright Imprimir la versión corta del mensaje de información de copyright de GNU en la salida estándar y salir correctamente.

-W dump-variables [ = archivo]

–dump-variables [ = file] Imprimir una lista ordenada de variables globales, sus tipos y valores finales en file. Si no se proporciona archivo, gawk utiliza un archivo llamado awkvars.out en el directorio actual.

Tener una lista de todas las variables globales es una buena manera de buscar errores tipográficos en sus programas. También usaría esta opción si tiene un programa grande con muchas funciones, y quiere estar seguro de que sus funciones no usan inadvertidamente variables globales que usted quería que fueran locales. (Este es un error particularmente fácil de cometer con nombres de variables simples como i , j , y así sucesivamente.)

-W help

-W uso

–help

–usage Imprime un resumen relativamente corto de las opciones disponibles en la salida estándar. (Según los Estándares de codificación GNU, estas opciones causan una salida inmediata y exitosa.)

-W pelusa [ =fatal ]

–lint [ =fatal ] Proporcionar advertencias sobre construcciones que son dudosas o no portables para otras implementaciones deAWK. Con un argumento opcional de fatal , las advertencias de pelusa se convierten en errores fatales. Esto puede ser drástico, pero su uso ciertamente fomentará el desarrollo de programas AWK más limpios.

-W lint-old

–lint-old Proporciona advertencias sobre construcciones que no son portátiles a la versión original de Unix awk.

-W gen-po

–gen-po Escanea y analiza el programa AWK, y genera un archivo de formato GNU .po en la salida estándar con entradas para todas las cadenas localizables del programa. El programa en sí no se ejecuta. Vea la distribución gettext de GNU para más información sobre los archivos .po .

-W datos no decimales

–non-decimal-data Reconocer valores octales y hexadecimales en los datos de entrada. Utilice esta opción con mucha precaución!

-W posix

–posix Esto activa el modo compatibilidad, con las siguientes restricciones adicionales:

*

x las secuencias de escape no se reconocen.

*

Sólo el espacio y la pestaña actúan como separadores de campo cuando FS se establece en un solo espacio, mientras que newline no lo hace.

*

No puede continuar líneas después de ? y : .

*

El sinónimo func para la palabra clave function no se reconoce.

*

Los operadores ** y **= no pueden utilizarse en lugar de ^ y ^= .

*

La función fflush() no está disponible.

-Perfil W [ = prof_file]

–profile [ = prof_file] Enviar datos de perfil a prof_file. El valor por defecto es awkprof.out . Cuando se ejecuta con gawk, el perfil es sólo una versión “bastante impresa” del programa. Cuando se ejecuta con pgawk, el perfil contiene los recuentos de ejecución de cada sentencia del programa en el margen izquierdo y los recuentos de llamada de función para cada función definida por el usuario.

-W re-intervalo

–re-interval Habilitar el uso de expresiones de intervalo en la correspondencia de expresiones regulares (ver Expresiones Regulares , abajo). Las expresiones de intervalos no estaban tradicionalmente disponibles en el lenguaje AWK. El estándar POSIX los agregó para que awk y egrep sean consistentes entre sí. Sin embargo, es probable que su uso rompa programas AWK antiguos, por lo que gawk sólo los proporciona si se solicitan con esta opción, o cuando –posix se especifica.

-W fuente program-text

–source program-text Usar program-text como código fuente del programa AWK. Esta opción permite entremezclar fácilmente las funciones de biblioteca (utilizadas a través de las opciones -f y –file ) con código fuente introducido en la línea de comandos. Está pensado principalmente para programas AWK medianos y grandes usados en scripts shell.

-Versión W

–version Información de la versión impresa para esta copia particular de gawk en la salida estándar. Esto es útil principalmente para saber si la copia actual de gawk en su sistema está actualizada con respecto a lo que la Free Software Foundation está distribuyendo. Esto también es útil cuando se reportan errores. (Según los Estándares de codificación GNU, estas opciones causan una salida inmediata y exitosa.)

Señala el final de las opciones. Esto es útil para permitir que otros argumentos del propio programa AWK comiencen con un “-”. Esto se debe principalmente a la coherencia con la convención de análisis de argumentos utilizada por la mayoría de los demás programas POSIX.

En el modo de compatibilidad, cualquier otra opción se marca como no válida, pero se ignora. En funcionamiento normal, siempre que se haya suministrado el texto del programa, las opciones desconocidas se transfieren al programa AWK en la matriz ARGV para su procesamiento. Esto es particularmente útil para ejecutar programas AWK a través del mecanismo de interpretación ejecutable “`#!

EJECUCIÓN DEL PROGRAMA AWK

Un programa AWK consiste en una secuencia de instrucciones de acción de patrones y definiciones de funciones opcionales.

pattern { action statements }
function name ( parameter list ) { statements }

Gawk lee primero el código fuente del programa desde el archivo de programa (s) si se ha especificado, desde los argumentos a –source , o desde el primer argumento sin opción en la línea de comandos. Las opciones -f y –source pueden utilizarse varias veces en la línea de comandos. Gawk lee el texto del programa como si todos los textos fuente del archivo de programas y de la línea de comandos se hubieran concatenado juntos. Esto es útil para construir bibliotecas de funciones AWK, sin tener que incluirlas en cada nuevo programa AWK que las utilice. También ofrece la posibilidad de mezclar funciones de biblioteca con programas de línea de comandos.

La variable de entorno AWKPATH especifica una ruta de búsqueda que se utilizará al buscar archivos de origen nombrados con la opción -f . Si esta variable no existe, la ruta por defecto es “.:/usr/local/share/awk” (El directorio real puede variar, dependiendo de cómo se construyó e instaló gawk). Si un nombre de archivo dado a la opción -f contiene un carácter “`/”’, no se realiza ninguna búsqueda de ruta.

Gawk ejecuta programas AWK en el siguiente orden. En primer lugar, se realizan todas las asignaciones de variables especificadas mediante la opción -v . A continuación, gawk compila el programa en un formulario interno. Luego, gawkejecuta el código en el bloque BEGIN (si existe), y luego procede a leer cada archivo nombrado en la matriz ARGV . Si no hay archivos nombrados en la línea de comandos, gawk lee la entrada estándar.

Si un nombre de archivo en la línea de comandos tiene el formulario var = val se trata como una asignación variable. A la variable var se le asignará el valor val. (Esto sucede después de haber ejecutado cualquier bloque BEGIN . La asignación de variables de línea de comandos es más útil para asignar valores dinámicamente a las variables que AWK utiliza para controlar cómo se divide la entrada en campos y registros. También es útil para controlar el estado si se necesitan varias pasadas en un solo archivo de datos.

Si el valor de un elemento particular de ARGV está vacío ( “” ), gawk lo omite.

Para cada registro en la entrada, gawk prueba para ver si coincide con algún patrón en el programa AWK. Para cada patrón que coincida con el registro, se ejecuta la acción asociada action.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *