InglésFrancésEspañol

Ad


icono de página de OnWorks

gawk - Online en la nube

Ejecute gawk en el proveedor de alojamiento gratuito de OnWorks sobre Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS

Este es el comando gawk que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


gawk - lenguaje de procesamiento y escaneo de patrones

SINOPSIS


papar moscas [Opciones de estilo POSIX o GNU] -f Archivo de programa [ -- ] expediente ...
papar moscas [Opciones de estilo POSIX o GNU] [ -- ] programa-texto expediente ...

DESCRIPCIÓN


Papar moscas es la implementación del proyecto GNU del lenguaje de programación AWK. Se ajusta a
la definición del lenguaje en el estándar POSIX 1003.1. Esta versión a su vez es
basado en la descripción en La AWK Programación Idioma, por Aho, Kernighan y
Weinberger. Papar moscas proporciona las funciones adicionales que se encuentran en la versión actual de Brian
De Kernighan awk y una serie de extensiones específicas de GNU.

La línea de comando consta de opciones para papar moscas sí mismo, el texto del programa AWK (si no se proporciona
mediante el -f or --expediente opciones), y los valores que estarán disponibles en el ARGC y ARGV pre-
variables AWK definidas.

Cuándo papar moscas se invoca con el --perfil opción, comienza a recopilar estadísticas de perfiles
desde la ejecución del programa. Papar moscas funciona más lentamente en este modo, y automáticamente
produce un perfil de ejecución en el archivo awkprof.fuera cuando termine. Ver el --perfil
opción, a continuación.

Papar moscas también tiene un depurador integrado. Se puede iniciar una sesión de depuración interactiva
suministrando el --depurar opción a la línea de comando. En este modo de ejecución, papar moscas cargas
el código fuente AWK y luego solicita comandos de depuración. Papar moscas solo puede depurar AWK
fuente del programa proporcionada con el -f opción. El depurador está documentado en PAPAR MOSCAS: Eficaz
AWK Programación.

OPCIÓN FORMATO


Papar moscas Las opciones pueden ser opciones tradicionales de una letra al estilo POSIX o opciones largas al estilo GNU.
opciones. Las opciones POSIX comienzan con un solo "-", mientras que las opciones largas comienzan con "-". Largo
Se proporcionan opciones tanto para funciones específicas de GNU como para funciones exigidas por POSIX.

Papar moscasLas opciones específicas se utilizan normalmente en forma de opción larga. Argumentos para opciones largas
están unidos con la opción por un = firmar, sin espacios intermedios, o pueden ser
proporcionado en el siguiente argumento de la línea de comandos. Las opciones largas pueden abreviarse, siempre que
la abreviatura sigue siendo única.

Además, cada opción larga tiene una opción corta correspondiente, de modo que la opción
la funcionalidad se puede utilizar desde dentro #! secuencias de comandos ejecutables.

CAMPUS


Papar moscas acepta las siguientes opciones. Las opciones estándar se enumeran primero, seguidas de
opciones para papar moscas extensiones, enumeradas alfabéticamente por opción corta.

-f Archivo de programa
--expediente Archivo de programa
Leer la fuente del programa AWK del archivo Archivo de programa, en lugar de desde el primero
argumento de línea de comando. Múltiple -f (o --expediente) se pueden utilizar opciones.

-F fs
- separador de campo fs
Uso fs para el separador de campo de entrada (el valor del FS variable predefinida).

-v var=val
--asignar var=val
Asignar el valor val a la variable var, antes de que comience la ejecución del programa.
Dichos valores de variable están disponibles para el EMPEZAR regla de un programa AWK.

-b
--caracteres-como-bytes
Trate todos los datos de entrada como caracteres de un solo byte. En otras palabras, no pague ninguna
atención a la información de la configuración regional al intentar procesar cadenas como multibyte
caracteres. los --posix La opción anula esta.

-c
--tradicional
Entrar corriendo compatibilidad modo. En modo de compatibilidad, papar moscas se comporta de manera idéntica a
De Brian Kernighan awk; no se reconoce ninguna de las extensiones específicas de GNU. Ver GNU
AMPLIACIONES, a continuación, para obtener más información.

-C
--derechos de autor
Imprima la versión corta del mensaje de información de derechos de autor de GNU en el estándar
salida y salir con éxito.

-d[presentar]
--variables de volcado[=presentar]
Imprima una lista ordenada de variables globales, sus tipos y valores finales para presentar. Si
no presentar está provisto, papar moscas usa un archivo llamado awkvars.fuera en el directorio actual.
Tener una lista de todas las variables globales es una buena forma de buscar datos tipográficos.
errores en sus programas. También usaría esta opción si tiene una gran
programa con muchas funciones, y desea asegurarse de que sus funciones no
utilice inadvertidamente variables globales que pretendía que fueran locales. (Esto es un
error particularmente fácil de cometer con nombres de variables simples como i, j, etcétera.)

-D[presentar]
--depurar[=presentar]
Habilite la depuración de programas AWK. De forma predeterminada, el depurador lee los comandos
interactivamente desde el teclado (entrada estándar). El opcional presentar argumento
especifica un archivo con una lista de comandos para que el depurador ejecute no
interactivamente.

-e programa-texto
--fuente programa-texto
Uso programa-texto como código fuente del programa AWK. Esta opción permite el fácil
entremezclado de funciones de biblioteca (utilizado a través del -f y --expediente opciones) con fuente
código ingresado en la línea de comando. Está destinado principalmente a AWK de tamaño mediano a grande.
programas utilizados en scripts de shell.

-E presentar
--ejecutivo presentar
Similar a -f, sin embargo, esta opción es la última procesada. Esto debería ser
usado con #! scripts, particularmente para aplicaciones CGI, para evitar pasar
opciones o código fuente (!) en la línea de comando desde una URL. Esta opción desactiva
asignaciones de variables de línea de comandos.

-g
--gen-pot
Escanee y analice el programa AWK y genere un GNU .maceta (Plantilla de objeto portátil)
formato de archivo en salida estándar con entradas para todas las cadenas localizables en el
programa. El programa en sí no se ejecuta. Ver el GNU gettext distribución para
más información sobre .maceta archivos.

-h
--ayuda Imprima un resumen relativamente breve de las opciones disponibles en la salida estándar.
(Por el GNU Codificación Estándares, estas opciones provocan una salida exitosa e inmediata).

-i incluir-archivo
--incluir incluir-archivo
Cargue una biblioteca fuente awk. Esto busca la biblioteca usando el AWKPATH
Variable ambiental. Si la búsqueda inicial falla, se hará otro intento.
después de agregar el .awk sufijo. El archivo se cargará solo una vez (es decir,
se eliminan los duplicados), y el código no constituye el programa principal
.

-l lib
--carga lib
Cargar una biblioteca compartida lib. Esto busca la biblioteca usando el AWKLIBPATH
Variable ambiental. Si la búsqueda inicial falla, se hará otro intento.
después de agregar el sufijo de biblioteca compartida predeterminado para la plataforma. La biblioteca
Se espera que la rutina de inicialización se nombre dl_load ().

-L [propuesta de]
--hilas[=propuesta de]
Proporcionar advertencias sobre construcciones dudosas o no portables a otros AWK
implementaciones. Con un argumento opcional de fatal, las advertencias de pelusa se vuelven fatales
errores. Esto puede ser drástico, pero su uso sin duda fomentará el desarrollo
de programas AWK más limpios. Con un argumento opcional de inválido, solo advertencias sobre
las cosas que son realmente inválidas se emiten. (Esto aún no está completamente implementado).

-M
--bignum
Fuerza aritmética de precisión arbitraria en números. Esta opción no tiene ningún efecto si papar moscas
no está compilado para usar las bibliotecas GNU MPFR y MP.

-n
--datos-no-decimales
Reconocer valores octales y hexadecimales en los datos de entrada. Uso así opción maravillosa
¡precaución!

-N
--use-lc-numérico
Esto fuerza papar moscas para usar el carácter de punto decimal de la configuración regional al analizar la entrada
datos. Aunque el estándar POSIX requiere este comportamiento, y papar moscas lo hace cuando
--posix está en efecto, el valor predeterminado es seguir el comportamiento tradicional y utilizar un
punto como punto decimal, incluso en lugares donde el punto no es el decimal
carácter puntual. Esta opción anula el comportamiento predeterminado, sin la
severidad draconiana de la --posix .

-o[presentar]
--impresión bonita[=presentar]
Genere una bonita versión impresa del programa para presentar. Si no presentar está provisto,
papar moscas usa un archivo llamado awkprof.fuera en el directorio actual.

-O
--optimizar
Habilite optimizaciones sobre la representación interna del programa. En la actualidad,
esto incluye un simple plegado constante y eliminación de llamadas de cola para recursivas
funciones los papar moscas El mantenedor espera agregar optimizaciones adicionales con el tiempo.

-p[archivo prof]
--perfil[=archivo prof]
Inicie una sesión de creación de perfiles y envíe los datos de creación de perfiles a archivo prof. El valor por defecto
is awkprof.fuera. El perfil contiene recuentos de ejecución de cada declaración en el
programa en el margen izquierdo y cuenta de llamadas de función para cada función definida por el usuario.

-P
--posix
Esto enciende compatibilidad modo, con las siguientes restricciones adicionales:

· \x las secuencias de escape no se reconocen.

· Solo el espacio y la pestaña actúan como separadores de campo cuando FS está configurado en un solo espacio,
nueva línea no lo hace.

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

· El sinónimo divertida para la palabra clave función no esta reconocido.

· Los operadores ** y ** = no se puede utilizar en lugar de ^ y ^=.

-r
--reintervalo
Habilite el uso de intervalo expresiones en la coincidencia de expresiones regulares (ver Regular
Expresiones, debajo). Las expresiones de intervalo no estaban disponibles tradicionalmente en el
Idioma AWK. El estándar POSIX los agregó, para hacer awk y egrep consistente con
mutuamente. Están habilitados de forma predeterminada, pero esta opción permanece para usarse con
--tradicional.

-S
--salvadera
Ron papar moscas en modo sandbox, deshabilitar el sistema() función, redirección de entrada con
obtener línea, redirección de salida con Imprimir y Printfy carga de extensiones dinámicas.
La ejecución de comandos (a través de canalizaciones) también está deshabilitada. Esto bloquea efectivamente un
script de acceder a los recursos locales (excepto para los archivos especificados en el
línea de comando).

-t
- pelusa viejo
Proporcionar advertencias sobre construcciones que no son portables a la versión original de
UNIX awk.

-V
--versión
Imprima la información de la versión de esta copia en particular de papar moscas en la salida estándar.
Esto es útil principalmente para saber si la copia actual de papar moscas en su sistema está activo
hasta la fecha con respecto a lo que distribuya la Free Software Foundation.
Esto también es útil al informar errores. (Por el GNU Codificación Estándares, Estos
opciones provocan una salida inmediata y exitosa).

-- Señala el final de las opciones. Esto es útil para permitir más argumentos al AWK
programarse para comenzar con un "-". Esto proporciona coherencia con el argumento.
Convención de análisis utilizada por la mayoría de los otros programas POSIX.

En el modo de compatibilidad, cualquier otra opción se marca como inválida, pero de lo contrario
ignorado. En funcionamiento normal, siempre que se haya proporcionado el texto del programa, opciones desconocidas
se pasan al programa AWK en el ARGV matriz para su procesamiento. Esto es particularmente
útil para ejecutar programas AWK a través de "#!" mecanismo de intérprete ejecutable.

Para compatibilidad POSIX, el -W Se puede utilizar la opción, seguida del nombre de una opción larga.

AWK PROGRAMA EJECUCIÓN


Un programa AWK consta de una secuencia de declaraciones de acción de patrón y función opcional
definiciones.

@incluir "nombre de archivo"
@carga "nombre de archivo"
patrón { DE ACTUAR! declaraciones }
función nombre (parámetro lista) { declaraciones }

Papar moscas primero lee la fuente del programa desde el Archivo de programa(s) si se especifica, a partir de argumentos
a --fuente, o desde el primer argumento que no es una opción en la línea de comando. los -f y
--fuente Las opciones se pueden utilizar varias veces en la línea de comandos. Papar moscas lee el programa
texto como si todo el Archivo de programasy los textos fuente de la línea de comandos se han concatenado
juntos. Esto es útil para crear bibliotecas de funciones AWK, sin tener que
inclúyalos en cada nuevo programa AWK que los utilice. También proporciona la capacidad de mezclar
funciones de biblioteca con programas de línea de comandos.

Además, las líneas que comienzan con @incluir se puede utilizar para incluir otros archivos fuente en
su programa, lo que facilita aún más el uso de la biblioteca. Esto es equivalente a usar el -i .

Líneas que comienzan con @carga se puede utilizar para cargar bibliotecas compartidas en su programa. Esta
es equivalente a usar el -l .

La variable de entorno AWKPATH especifica una ruta de búsqueda que se utilizará al buscar archivos de origen
nombrado con el -f y -i opciones. Si esta variable no existe, la ruta predeterminada es
".: / usr / local / share / awk". (El directorio real puede variar, dependiendo de cómo papar moscas fue
construido e instalado.) Si un nombre de archivo dado al -f La opción contiene un carácter "/", no
Se realiza la búsqueda de ruta.

La variable de entorno AWKLIBPATH especifica una ruta de búsqueda para usar al encontrar la fuente
archivos nombrados con el -l opción. Si esta variable no existe, la ruta predeterminada es
"/ usr / local / lib / gawk". (El directorio real puede variar, dependiendo de cómo papar moscas fue construida
e instalado.)

Papar moscas ejecuta programas AWK en el siguiente orden. Primero, todas las asignaciones de variables
especificado a través del -v se realizan las opciones. Próximo, papar moscas compila el programa en un
forma interna. Luego, papar moscas ejecuta el código en el EMPEZAR regla (s) (si corresponde), y luego
procede a leer cada archivo nombrado en el ARGV matriz (hasta ARGV [ARGC]). Si no hay
archivos nombrados en la línea de comando, papar moscas lee la entrada estándar.

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

Si el valor de un elemento particular de ARGV esta vacio (""), papar moscas lo omite.

Para cada archivo de entrada, si un ARCHIVO DE INICIO la regla existe, papar moscas ejecuta el código asociado antes
procesar el contenido del archivo. Similar, papar moscas ejecuta el código asociado con
ARCHIVO FINAL después de procesar el archivo.

Para cada registro en la entrada, papar moscas pruebas para ver si coincide con alguna patrón en el AWK
programa. Para cada patrón que coincida con el registro, papar moscas ejecuta el asociado DE ACTUAR!.
Los patrones se prueban en el orden en que aparecen en el programa.

Finalmente, después de que se agote toda la entrada, papar moscas ejecuta el código en el FIN regla (s) (si
alguna).

Comando línea Directorio
Según POSIX, los archivos nombrados en el awk la línea de comando debe ser archivos de texto. El comportamiento
está `` indefinido '' si no lo están. La mayoría de las versiones de awk tratar un directorio en el comando
línea como un error fatal.

A partir de la versión 4.0 de papar moscas, un directorio en la línea de comando produce una advertencia, pero
de lo contrario, se omite. Si alguno de los --posix or --tradicional se dan opciones, entonces
papar moscas vuelve a tratar los directorios en la línea de comandos como un error fatal.

VARIABLES, EXPEDIENTES E CAMPOS


Las variables AWK son dinámicas; surgen cuando se utilizan por primera vez. Su
Los valores son números de coma flotante o cadenas, o ambos, dependiendo de cómo estén
usó. AWK también tiene matrices unidimensionales; Las matrices con múltiples dimensiones pueden ser
simulado. Papar moscas proporciona verdaderas matrices de matrices; ver Matrices, debajo. Varios predefinidos
las variables se establecen a medida que se ejecuta un programa; estos se describen según sea necesario y se resumen a continuación.

Archivos
Normalmente, los registros están separados por caracteres de nueva línea. Puedes controlar cómo están los registros
separados asignando valores a la variable incorporada RS. Si RS es un solo carácter,
ese carácter separa registros. De lo contrario, RS es una expresión regular. Texto en el
la entrada que coincide con esta expresión regular separa el registro. Sin embargo, en
modo de compatibilidad, solo el primer carácter de su valor de cadena se utiliza para separar
registros. Si RS se establece en la cadena nula, los registros se separan con líneas en blanco.
Cuándo RS se establece en la cadena nula, el carácter de nueva línea siempre actúa como un separador de campo,
además de cualquier valor FS puede tener.

Terrenos
A medida que se lee cada registro de entrada, papar moscas divide el registro en campos, utilizando el valor de la
FS variable como separador de campo. Si FS es un solo carácter, los campos están separados por
ese personaje. Si FS es la cadena nula, entonces cada carácter individual se convierte en un
campo separado. De lo contrario, FS se espera que sea una expresión regular completa. En el
caso especial que FS es un solo espacio, los campos están separados por tramos de espacios y / o tabulaciones
y / o nuevas líneas. (Pero vea la sección POSIX COMPATIBILIDADa continuación). NOTA: El valor de
IGNORAR CASO (ver a continuación) también afecta cómo se dividen los campos cuando FS es una expresión regular,
y cómo se separan los registros cuando RS es una expresión regular.

Si ANCHOS DE CAMPO variable se establece en una lista de números separados por espacios, cada campo es
se espera que tenga un ancho fijo, y papar moscas divide el registro utilizando los anchos especificados.
El valor de FS se ignora. Asignar un nuevo valor a FS or FPAT anula el uso de
ANCHOS DE CAMPO.

Del mismo modo, si el FPAT variable se establece en una cadena que representa una expresión regular, cada
El campo se compone de texto que coincide con esa expresión regular. En este caso, el regular
expresión describe los campos en sí mismos, en lugar del texto que separa los campos.
Asignar un nuevo valor a FS or ANCHOS DE CAMPO anula el uso de FPAT.

Cada campo en el registro de entrada puede ser referenciado por su posición: $1, $2, Y así sucesivamente. $0
es todo el récord. Los campos no necesitan ser referenciados por constantes:

n = 5
Imprimir $n

imprime el quinto campo en el registro de entrada.

La variable NF se establece en el número total de campos en el registro de entrada.

Referencias a campos inexistentes (es decir, campos después $ NF) producen la cadena nula.
Sin embargo, asignar a un campo inexistente (p. Ej., $ (NF + 2) = 5) aumenta el valor de NF,
crea cualquier campo intermedio con la cadena nula como sus valores y hace que el valor
of $0 volver a calcular, con los campos separados por el valor de FSO. Referencias
a campos numerados negativos causan un error fatal. Decrementando NF causa los valores de
campos más allá del nuevo valor que se perderá, y el valor de $0 para ser recalculado, con el
campos separados por el valor de FSO.

Asignar un valor a un campo existente hace que todo el registro se reconstruya cuando $0 is
referenciado. Del mismo modo, asignar un valor a $0 hace que el registro se vuelva a dividir, creando
nuevos valores para los campos.

Incorporado Variables
Papar moscasLas variables integradas son:

ARGC El número de argumentos de la línea de comando (no incluye opciones para papar moscas, o el
fuente del programa).

ARGIND El índice en ARGV del archivo actual que se está procesando.

ARGV Matriz de argumentos de la línea de comandos. La matriz está indexada de 0 a ARGC - 1.
Cambiar dinámicamente el contenido de ARGV puede controlar los archivos utilizados para los datos.

MODO BIN En sistemas que no son POSIX, especifica el uso del modo "binario" para todas las E / S de archivos.
Los valores numéricos de 1, 2 o 3 especifican que los archivos de entrada, los archivos de salida o todos
Los archivos, respectivamente, deben usar E / S binaria. Valores de cadena de "r"o "w"
especificar que los archivos de entrada o los archivos de salida, respectivamente, deben usar binarios
E / S. Valores de cadena de "rw" or "wr" especificar que todos los archivos deben usar binario
E / S. Cualquier otro valor de cadena se trata como "rw", pero genera una advertencia
mensaje.

CONVFMT El formato de conversión de números, "% .6g", por defecto.

REINAR Una matriz que contiene los valores del entorno actual. La matriz es
indexado por las variables de entorno, cada elemento es el valor de ese
variable (p. ej., MEDIO AMBIENTE ["HOGAR"] puede ser "/ inicio / arnold"). Cambiar esta matriz
no afecta el medio ambiente visto por los programas que papar moscas genera a través de
redirección o el sistema() función.

ERROR Si se produce un error del sistema, ya sea haciendo una redirección para obtener línea, durante una lectura
para obtener línea, o durante un close(), entonces ERROR contendrá una cadena que describe
el error. El valor está sujeto a traducción en configuraciones regionales distintas del inglés.

ANCHOS DE CAMPO Una lista de anchos de campo separados por espacios en blanco. Cuando se establece, papar moscas analiza la entrada
en campos de ancho fijo, en lugar de utilizar el valor de la FS variable como
el separador de campo. Ver Terrenos, encima.

NOMBRE DEL ARCHIVO El nombre del archivo de entrada actual. Si no se especifican archivos en el comando
línea, el valor de NOMBRE DEL ARCHIVO es "-". Sin embargo, NOMBRE DEL ARCHIVO no está definido dentro del
EMPEZAR regla (a menos que lo establezca obtener línea).

FNR El número de registro de entrada en el archivo de entrada actual.

FPAT Una expresión regular que describe el contenido de los campos de un registro. Cuando
conjunto, papar moscas analiza la entrada en campos, donde los campos coinciden con el normal
expresión, en lugar de utilizar el valor de la FS variable como el campo
separador. Ver Terrenos, encima.

FS El separador de campo de entrada, un espacio por defecto. Ver Terrenos, encima.

FUNTAB Una matriz cuyos índices y valores correspondientes son los nombres de todos los usuarios
funciones definidas o de extensión en el programa. NOTA: No puede utilizar el
borrar declaración con el FUNTAB formación.

IGNORAR CASO Controla la distinción entre mayúsculas y minúsculas de todas las operaciones de cadenas y expresiones regulares.
If IGNORAR CASO tiene un valor distinto de cero, luego comparaciones de cadenas y patrón
coincidencia en reglas, división de campo con FS y FPAT, registro separando con
RS, expresión regular que coincide con ~ y !~, y la gensub (), gsub (),
índice(), partido(), patsplit (), separar()y sub() todas las funciones integradas ignoran
caso al realizar operaciones de expresión regular. NOTA: El subíndice de matriz es
no afectado. sin embargo, el un tipo() y asorti () las funciones se ven afectadas.
Por lo tanto, si IGNORAR CASO no es igual a cero, / aB / coincide con todas las cadenas
"ab", "aB", "Ab"y "AB". Como ocurre con todas las variables AWK, el valor inicial de
IGNORAR CASO es cero, por lo que todas las operaciones de cadenas y expresiones regulares son
normalmente distingue entre mayúsculas y minúsculas.

HILAS Proporciona control dinámico de la --hilas opción desde dentro de un programa AWK.
Cuando es verdad papar moscas imprime advertencias de pelusa. Cuando es falso, no lo hace. Cuando se asigna
el valor de la cadena "fatal", las advertencias de pelusa se convierten en errores fatales, exactamente igual que
--lint = fatal. Cualquier otro valor verdadero solo imprime advertencias.

NF El número de campos en el registro de entrada actual.

NR El número total de registros de entrada vistos hasta ahora.

OFMT El formato de salida para números, "% .6g", por defecto.

FSO El separador de campo de salida, un espacio por defecto.

RES El separador de registros de salida, por defecto una nueva línea.

ANTERIOR La precisión de trabajo de números de coma flotante de precisión arbitraria, 53 por
predeterminado.

PROCINFO Los elementos de esta matriz proporcionan acceso a información sobre el AWK en ejecución.
programa. En algunos sistemas, puede haber elementos en la matriz, "grupo 1"
a "grupon" para algunos n, que es el número de grupos suplementarios que
el proceso tiene. Utilizar el in operador para probar estos elementos. los
Se garantiza la disponibilidad de los siguientes elementos:

PROCINFO ["egid"] El valor de la conseguir(2) llamada al sistema.

PROCINFO ["strftime"]
La cadena de formato de hora predeterminada para strftime ().

PROCINFO ["euid"] El valor de la geteuid(2) llamada al sistema.

PROCINFO ["FS"] "FS" si el campo se divide con FS está en efecto, "FPAT" if
campo dividido con FPAT está en vigor, o "ANCHOS DE CAMPO"
si el campo se divide con ANCHOS DE CAMPO está en efecto.

PROCINFO ["identificadores"]
Un subarreglo, indexado por los nombres de todos los identificadores utilizados
en el texto del programa AWK. Los valores indican lo que
papar moscas conoce los identificadores una vez que ha terminado
analizar el programa; son no actualizado mientras el
el programa se ejecuta. Para cada identificador, el valor de la
elemento es uno de los siguientes:

"matriz"
El identificador es una matriz.

"incorporado"
El identificador es una función incorporada.

"extensión"
El identificador es una función de extensión cargada a través de
@carga or -l.

"escalar"
El identificador es un escalar.

"sin tipo"
El identificador no está escrito (podría usarse como
escalar o matriz, papar moscas aún no lo sabe).

"usuario" El identificador es una función definida por el usuario.

PROCINFO ["gid"] El valor de la conseguir(2) llamada al sistema.

PROCINFO ["pgrpid"] El ID de grupo de procesos del proceso actual.

PROCINFO ["pid"] El ID de proceso del proceso actual.

PROCINFO ["ppid"] El ID del proceso principal del proceso actual.

PROCINFO ["uid"] El valor de la getuido(2) llamada al sistema.

PROCINFO ["sorted_in"]
Si este elemento existe en PROCINFO, entonces su valor
controla el orden en el que se atraviesan los elementos de la matriz
in para bucles. Los valores admitidos son "@ind_str_asc",
"@ind_num_asc", "@val_type_asc", "@val_str_asc",
"@val_num_asc", "@ind_str_desc", "@ind_num_desc",
"@val_type_desc", "@val_str_desc", "@val_num_desc"y
"@ sin clasificar". El valor también puede ser el nombre de cualquier
función de comparación definida como sigue:

función cmp_func (i1, v1, i2, v2)

donde i1 y i2 son los índices, y v1 y v2 son el
valores correspondientes de los dos elementos que se comparan.
Debe devolver un número menor, igual o mayor
que 0, dependiendo de cómo los elementos de la matriz sean
ser ordenado.

PROCINFO ["entrada", "READ_TIMEOUT"]
El tiempo de espera en milisegundos para leer datos de Las opciones de entrada,
donde Las opciones de entrada es una cadena de redirección o un nombre de archivo. Un valor
de cero o menos de cero significa que no hay tiempo de espera.

PROCINFO ["mpfr_version"]
La versión de la biblioteca GNU MPFR utilizada para arbitrarias
soporte numérico de precisión en papar moscas. Esta entrada no es
presente si el soporte MPFR no está compilado en papar moscas.

PROCINFO ["gmp_version"]
La versión de la biblioteca GNU MP utilizada para arbitrarias
soporte numérico de precisión en papar moscas. Esta entrada no es
presente si el soporte MPFR no está compilado en papar moscas.

PROCINFO ["prec_max"]
La máxima precisión que admite la biblioteca GNU MPFR
para números de punto flotante de precisión arbitraria. Esta
La entrada no está presente si el soporte MPFR no está compilado en
papar moscas.

PROCINFO ["prec_min"]
La precisión mínima permitida por la biblioteca GNU MPFR para
números de coma flotante de precisión arbitraria. Esta entrada es
no está presente si el soporte MPFR no está compilado en papar moscas.

PROCINFO ["api_major"]
La versión principal de la API de extensión. Esta entrada no es
presente si la carga de extensiones dinámicas no está disponible.

PROCINFO ["api_minor"]
La versión secundaria de la API de extensión. Esta entrada no es
presente si la carga de extensiones dinámicas no está disponible.

PROCINFO ["versión"] la versión de papar moscas.

MODO REDONDO El modo de redondeo que se utilizará para la aritmética de precisión arbitraria en números, por
tu préstamo estudiantil "NORTE" (Modo IEEE-754 roundTiesToEven). Los valores aceptados son "NORTE" or
"N" para roundTiesToEven, "U" or "u" para roundTowardPositive, "D" or "re" para
redondo hacia negativo, "Z" or "z" para roundTowardZero, y si su versión de
La biblioteca GNU MPFR lo admite, "A" or "Un" para roundTiesToAway.

RS El separador de registros de entrada, por defecto una nueva línea.

RT El terminador de registros. Papar moscas conjuntos RT al texto de entrada que coincide con el
carácter o expresión regular especificada por RS.

RINICIO El índice del primer carácter que coincide con partido(); 0 si no coincide. (Esta
implica que los índices de caracteres comienzan en uno).

LONGITUD La longitud de la cuerda coincidente con partido(); -1 si no coincide.

SUBSEP El carácter utilizado para separar varios subíndices en elementos de matriz, por
tu préstamo estudiantil "\ 034".

SIMTAB Una matriz cuyos índices son los nombres de todas las variables globales definidas actualmente.
y matrices en el programa. La matriz se puede utilizar para acceso indirecto para leer
o escribe el valor de una variable:

foo = 5
SYMTAB ["foo"] = 4
Imprimir foo # huellas dactilares 4

La isarray () La función se puede utilizar para probar si un elemento en SIMTAB es un
formación. No puede usar el borrar declaración con el SIMTAB formación.

DOMINIO DE TEXTO El dominio de texto del programa AWK; utilizado para encontrar las traducciones localizadas
para las cadenas del programa.

Matrices
Las matrices están subindicadas con una expresión entre corchetes ([ y ]) Si el
expresión es una lista de expresiones (expr, expr ...) entonces el subíndice de la matriz es una cadena
que consiste en la concatenación del valor (cadena) de cada expresión, separados por
valor de la SUBSEP variable. Esta función se utiliza para simular
matrices. Por ejemplo:

i = "A"; j = "B"; k = "C"
x [yo, j, k] = "Hola, mundo \ n "

asigna la cadena "Hola, mundo \ n " al elemento de la matriz x que está indexado por el
cadena "A \ 034B \ 034C". Todas las matrices en AWK son asociativas, es decir, indexadas por valores de cadena.

El operador especial in puede usarse para probar si una matriz tiene un índice que consta de un
valor particular:

if (valor in formación)
Imprimir matriz [val]

Si la matriz tiene varios subíndices, use (Y, j) in matriz.

La in La construcción también se puede utilizar en un para bucle para iterar sobre todos los elementos de un
formación. sin embargo, el (Y, j) in matriz construir solo funciona en pruebas, no en para bucles

Un elemento puede eliminarse de una matriz utilizando el borrar declaración. La borrar ambiental
también se puede usar para eliminar todo el contenido de una matriz, simplemente especificando la matriz
nombre sin subíndice.

papar moscas admite verdaderas matrices multidimensionales. No requiere que tales matrices sean
`` rectangular '' como en C o C ++. Por ejemplo:

a [1] = 5
a [2] [1] = 6
a [2] [2] = 7

NOTA: Es posible que deba informar papar moscas que un elemento de matriz es realmente una submatriz para poder usar
es donde papar moscas espera una matriz (como en el segundo argumento para separar()). Tu puedes hacer
esto creando un elemento en el subarreglo y luego eliminándolo con el borrar
.

Variable Escribir Y Conversión
Las variables y los campos pueden ser números (de coma flotante), cadenas o ambos. Como el valor
de una variable se interpreta depende de su contexto. Si se usa en una expresión numérica,
se tratará como un número; si se usa como una cadena, se tratará como una cadena.

Para forzar que una variable sea tratada como un número, agregue 0; para obligarlo a ser tratado como un
cadena, concatenarla con la cadena nula.

Las variables no inicializadas tienen el valor numérico 0 y el valor de cadena "" (el nulo o
cuerda vacía).

Cuando una cadena debe convertirse en un número, la conversión se logra usando
strtod(3). Un número se convierte en una cadena utilizando el valor de CONVFMT como formato
cuerda para correr(3), con el valor numérico de la variable como argumento. Sin embargo,
aunque todos los números en AWK son de punto flotante, los valores integrales son hacerlo convertido como
enteros. Por lo tanto, dado

CONVFMT = "% 2.2f"
a = 12
b = a ""

La variable b tiene un valor de cadena de "12" y no "12.00".

NOTA: Cuando se opera en modo POSIX (como con el --posix opción), tenga cuidado con la configuración regional
Los ajustes pueden interferir con la forma en que se tratan los números decimales: el separador decimal de
los números a los que te estás alimentando papar moscas debe ajustarse a lo que su localidad esperaría, ya sea un
coma (,) o un punto (.).

Papar moscas realiza comparaciones de la siguiente manera: si dos variables son numéricas, se comparan
numéricamente. Si un valor es numérico y el otro tiene un valor de cadena que es un "numérico
string ”, las comparaciones también se hacen numéricamente. De lo contrario, el valor numérico es
convertido a una cadena y se realiza una comparación de cadenas. Se comparan dos cadenas, de
por supuesto, como cadenas.

Tenga en cuenta que las constantes de cadena, como "57", son no cadenas numéricas, son cadenas
constantes. La idea de "cadena numérica" ​​solo se aplica a los campos, obtener línea entrada, NOMBRE DEL ARCHIVO,
ARGV elementos, REINAR elementos y los elementos de una matriz creada por separar() or
patsplit () que son cadenas numéricas. La idea básica es que usuario Las opciones de entrada, y único usuario
La entrada, que parece numérica, debe tratarse de esa manera.

Octal y Hexadecimal Constantes
Puede utilizar constantes octales y hexadecimales de estilo C en el código fuente de su programa AWK. Para
ejemplo, el valor octal 011 es igual a decimal 9y el valor hexadecimal 0x11 is
igual al decimal 17.

Cordón Constantes
Las constantes de cadena en AWK son secuencias de caracteres entre comillas dobles (como
"valor"). Dentro de las cadenas, ciertos escapar secuencias son reconocidos, como en C. Estos son:

\\ Una barra invertida literal.

\a El carácter de "alerta"; generalmente el carácter ASCII BEL.

\b Retroceso.

\f Alimentación de formulario.

\n Nueva línea.

\r Retorno de carro.

\t Ficha horizontal.

\v Pestaña vertical.

\xhexagonal dígitos
El carácter representado por la cadena de dígitos hexadecimales que sigue al \x. Porque
en ISO C, todos los dígitos hexadecimales siguientes se consideran parte del escape
secuencia. (Esta característica debería decirnos algo sobre el diseño del lenguaje por
comité.) Por ejemplo, "\ x1B" es el carácter ASCII ESC (escape).

\Anuncios clasificados entre particulares en las Islas Baleres El carácter representado por la secuencia de dígitos octales de 1, 2 o 3 dígitos. P.ej,
"\ 033" es el carácter ASCII ESC (escape).

\c El personaje literal c.

Las secuencias de escape también se pueden usar dentro de expresiones regulares constantes (p. Ej.,
/[ \ t \ f \ n \ r \ v] / coincide con caracteres de espacio en blanco).

En modo de compatibilidad, los caracteres representados por octal y hexadecimal escapan
las secuencias se tratan literalmente cuando se utilizan en constantes de expresión regular. Por lo tanto, / a \ 52b /
es equivalente a / a \ * b /.

PATRONES E ACCIONES


AWK es un lenguaje orientado a líneas. Primero viene el patrón y luego la acción. Acción
las declaraciones están incluidas en { y }. Es posible que falte el patrón o que la acción
faltarán, pero, por supuesto, no ambos. Si falta el patrón, se ejecuta la acción.
para cada registro de entrada. Una acción faltante es equivalente a

{ Imprimir }

que imprime el registro completo.

Los comentarios comienzan con # carácter y continúe hasta el final de la línea. Líneas en blanco
se puede utilizar para separar declaraciones. Normalmente, una declaración termina con una nueva línea, sin embargo,
este no es el caso de las líneas que terminan en coma, {, ?, :, &&o ||. Líneas que terminan en do
or más sus declaraciones también continúan automáticamente en la siguiente línea. En
En otros casos, una línea puede continuar terminando con una "\", en cuyo caso la nueva línea es
ignorado

Se pueden colocar varias declaraciones en una línea separándolas con un ";". Esto aplica a
tanto las declaraciones dentro de la parte de acción de un par patrón-acción (el caso habitual), y
a las propias declaraciones de patrón-acción.

Patrones
Los patrones AWK pueden ser uno de los siguientes:

EMPEZAR
FIN
ARCHIVO DE INICIO
ARCHIVO FINAL
/regular expresión/
relacional expresión
patrón && patrón
patrón || patrón
patrón ? patrón : patrón
(patrón)
! patrón
pattern1, pattern2

EMPEZAR y FIN Hay dos tipos especiales de patrones que no se prueban con la entrada.
Las partes de acción de todo EMPEZAR Los patrones se fusionan como si todas las declaraciones hubieran sido
escrito en un solo EMPEZAR regla. Se ejecutan antes de que se lea cualquiera de las entradas.
Del mismo modo, todos los FIN Las reglas se fusionan y se ejecutan cuando se agota toda la entrada (o
cuando un salida se ejecuta la sentencia). EMPEZAR y FIN los patrones no se pueden combinar con otros
patrones en expresiones de patrones. EMPEZAR y FIN los patrones no pueden tener partes de acción faltantes.

ARCHIVO DE INICIO y ARCHIVO FINAL son patrones especiales adicionales cuyos cuerpos se ejecutan antes
leer el primer registro de cada archivo de entrada de línea de comando y después de leer el último registro
de cada archivo. Dentro de ARCHIVO DE INICIO regla, el valor de ERROR será la cadena vacía si
el archivo se abrió correctamente. De lo contrario, hay algún problema con el archivo y el
el código debe usar archivo siguiente para omitirlo. Si eso no se hace, papar moscas produce su habitual fatal
error para archivos que no se pueden abrir.

/regular expresión/ patrones, la declaración asociada se ejecuta para cada entrada
registro que coincide con la expresión regular. Las expresiones regulares son las mismas que las de
egrep(1) y se resumen a continuación.

A relacional expresión puede utilizar cualquiera de los operadores definidos a continuación en la sección sobre
comportamiento. Estos generalmente prueban si ciertos campos coinciden con ciertas expresiones regulares.

La &&, ||y ! los operadores son lógicos AND, lógicos OR y lógicos NOT, respectivamente,
como en C. Hacen evaluación de cortocircuito, también como en C, y se utilizan para combinar más
expresiones de patrones primitivos. Como en la mayoría de los idiomas, se pueden usar paréntesis para cambiar
el orden de evaluación.

La ?: El operador es como el mismo operador en C.Si el primer patrón es verdadero, entonces el
El patrón utilizado para las pruebas es el segundo patrón; de lo contrario, es el tercero. Solo uno de
Se evalúa el segundo y tercer patrón.

La pattern1, pattern2 La forma de una expresión se llama distancia patrón. Coincide con todo
registros de entrada que comienzan con un registro que coincide pattern1, y continuando hasta un récord
eso combina pattern2, inclusive. No combina con ningún otro tipo de patrón.
expresión.

Regular Expresiones
Las expresiones regulares son del tipo extendido que se encuentran en egrep. Están compuestos por personajes
como sigue:

c Coincide con el no metacarácter c.

\c Coincide con el carácter literal c.

. Coincide con cualquier personaje de alta calidad que incluyen nueva línea.

^ Coincide con el comienzo de una cadena.

$ Coincide con el final de una cuerda.

[a B C...] Una lista de personajes: coincide con cualquiera de los personajes. a B C.... Puede incluir un
rango de caracteres separándolos con un guión.

[^a B C...] Una lista de caracteres negada: coincide con cualquier carácter excepto a B C....

r1|r2 Alternancia: coincide con cualquiera r1 or r2.

r1r2 Concatenación: partidos r1, y entonces r2.

r+ Coincide con uno o más res

r* Coincide con cero o más res

r? Coincide con cero o uno res

(r) Agrupación: partidos r.

r{n}
r{n,}
r{n,m} Uno o dos números entre llaves denotan un intervalo expresión. Si hay
un número entre llaves, la expresión regular anterior r se repite n
veces. Si hay dos números separados por una coma, r se repite n a m
veces. Si hay un número seguido de una coma, entonces r se repite al menos
n veces.

\y Coincide con la cadena vacía al principio o al final de una palabra.

\B Coincide con la cadena vacía dentro de una palabra.

\< Coincide con la cadena vacía al principio de una palabra.

\> Coincide con la cadena vacía al final de una palabra.

\s Coincide con cualquier carácter de espacio en blanco.

\S Coincide con cualquier carácter que no sea de espacio en blanco.

\w Coincide con cualquier carácter constitutivo de una palabra (letra, dígito o guión bajo).

\W Coincide con cualquier carácter que no sea una palabra.

\` Coincide con la cadena vacía al comienzo de un búfer (cadena).

\' Coincide con la cadena vacía al final de un búfer.

Las secuencias de escape que son válidas en constantes de cadena (consulte Cordón Constantes) son también
válido en expresiones regulares.

Caracter privadas son una característica introducida en el estándar POSIX. Una clase de personaje es una
notación especial para describir listas de caracteres que tienen un atributo específico, pero
donde los caracteres reales en sí mismos pueden variar de un país a otro y / o de
juego de caracteres al juego de caracteres. Por ejemplo, la noción de lo que es un alfabeto
el carácter difiere en los EE. UU. y en Francia.

Una clase de caracteres solo es válida en una expresión regular dentro los corchetes de un personaje
lista. Las clases de personajes consisten en [:, una palabra clave que denota la clase, y :].
Las clases de caracteres definidas por el estándar POSIX son:

[: alnum:] Caracteres alfanuméricos.

[:alfa:] Caracteres alfabéticos.

[:blanco:] Caracteres de espacio o tabulación.

[: cntrl:] Controla a los personajes.

[:dígito:] Caracteres numéricos.

[:grafico:] Caracteres imprimibles y visibles. (Un espacio es imprimible, pero no
visible, mientras que un a es ambos.)

[:más bajo:] Caracteres alfabéticos en minúscula.

[:impresión:] Caracteres imprimibles (caracteres que no son caracteres de control).

[: puntuar:] Caracteres de puntuación (caracteres que no son letras, dígitos, control
caracteres o espacios).

[:espacio:] Caracteres de espacio (como espacio, tabulación y avance de formulario, por nombrar algunos).

[:superior:] Caracteres alfabéticos en mayúsculas.

[: xdigit:] Caracteres que son dígitos hexadecimales.

Por ejemplo, antes del estándar POSIX, para hacer coincidir los caracteres alfanuméricos, habría
Tenia que escribir / [A-Za-z0-9] /. Si su juego de caracteres tiene otros caracteres alfabéticos,
esto no coincidiría con ellos, y si su juego de caracteres se clasifica de manera diferente a ASCII, esto
puede que ni siquiera coincida con los caracteres alfanuméricos ASCII. Con las clases de caracteres POSIX,
puedes escribir / [[: alnum:]] /, y esto coincide con los caracteres alfabéticos y numéricos en
tu conjunto de caracteres, no importa cuál sea.

Pueden aparecer dos secuencias especiales adicionales en las listas de caracteres. Estos se aplican a no ASCII
conjuntos de caracteres, que pueden tener símbolos únicos (llamados cotejando elementos) que son
representados con más de un carácter, así como varios caracteres que son
equivalente para cotejando, o clasificación, propósitos. (Por ejemplo, en francés, una "e" simple y una
"" "con acento grave son equivalentes.)

Clasificación de símbolos
Un símbolo de clasificación es un elemento de clasificación de varios caracteres encerrado en [. y .].
Por ejemplo, si ch es un elemento de clasificación, entonces [[.ch.]] es una expresión regular
que coincide con este elemento de clasificación, mientras que [ch] es una expresión regular que
coincide con c or h.

Clases de equivalencia
Una clase de equivalencia es un nombre específico de la configuración regional para una lista de caracteres que son
equivalente. El nombre está encerrado en [= y =]. Por ejemplo, el nombre e puede ser
utilizado para representar todos los valores de "e", "´" y "". " En este caso, [[= e =]] es un regular
expresión que coincide con cualquiera de e, mio e`.

Estas funciones son muy valiosas en lugares que no hablan inglés. Las funciones de la biblioteca
esa papar moscas los usos para la coincidencia de expresiones regulares actualmente solo reconocen el carácter POSIX
clases; no reconocen la clasificación de símbolos o clases de equivalencia.

La \y, \B, \<, \>, \s, \S, \w, \W, \`y \' los operadores son específicos para papar moscas; son
extensiones basadas en las instalaciones de las bibliotecas de expresiones regulares GNU.

Las diversas opciones de la línea de comando controlan cómo papar moscas interpreta caracteres en regular
expresiones

Sin opciones
En el caso predeterminado, papar moscas proporciona todas las facilidades de las expresiones regulares POSIX
y los operadores de expresión regular GNU descritos anteriormente.

--posix
Solo se admiten expresiones regulares POSIX, los operadores GNU no son especiales.
(P.ej, \w coincide con un literal w).

--tradicional
UNIX tradicional awk las expresiones regulares coinciden. Los operadores GNU no son
las expresiones especiales y de intervalo no están disponibles. Caracteres descritos por octal
y las secuencias de escape hexadecimales se tratan literalmente, incluso si representan
metacaracteres de expresiones regulares.

--reintervalo
Permitir expresiones de intervalo en expresiones regulares, incluso si --tradicional ha sido
previsto.

Acciones
Las declaraciones de acción están entre llaves, { y }. Las declaraciones de acción consisten en lo habitual
sentencias de asignación, condicionales y de bucle que se encuentran en la mayoría de los idiomas. Los operadores,
Las declaraciones de control y las declaraciones de entrada / salida disponibles siguen el patrón de las de C.

telecomunicaciones
Los operadores en AWK, en orden de precedencia decreciente, son:

(...) Agrupamiento

$ Referencia de campo.

++ -- Incremento y decremento, tanto prefijo como sufijo.

^ Exponenciación (** también se puede utilizar, y ** = para el operador de asignación).

+ - ! Más unario, menos unario y negación lógica.

* / % Multiplicación, división y módulo.

+ - Adición y sustracción.

espacio Concatenación de cadenas.

| |& E / S canalizadas para obtener línea, Imprimiry Printf.

< > <= >= != ==
Los operadores relacionales habituales.

~ !~ Coincidencia de expresión regular, coincidencia negada. NOTA: No use un regular constante
expresión (/ foo /) en el lado izquierdo de un ~ or !~. Utilice solo uno en el
lado derecho. La expresion / foo / ~ exp tiene el mismo significado que (($ 0 ~
/ foo /) ~ exp). Esto suele ser no lo que quiere.

in Membresía de matriz.

&& AND lógico.

|| OR lógico.

?: La expresión condicional de C. Esto tiene la forma Expr1 ? Expr2 : Expr3. Si
Expr1 es cierto, el valor de la expresión es Expr2, de lo contrario es Expr3.
Solo uno de Expr2 y Expr3 se evalúa.

= += -= *= /= %= ^=
Asignación. Ambos asignación absoluta (var = propuesta de) y asignación de operador
(las otras formas) son compatibles.

Control Declaraciones
Las declaraciones de control son las siguientes:

if (condición) ambiental [ más ambiental ]
mientras (condición) ambiental
do ambiental mientras (condición)
para (Expr1; Expr2; Expr3) ambiental
para (var in matriz) ambiental
romper
continue
borrar matriz[índice]
borrar matriz
salida [ expresión ]
{ declaraciones }
cambiar (expresión) {
case propuesta de|expresiones regulares : ambiental
...
[ por defecto: ambiental ]
}

I / O Declaraciones
Las declaraciones de entrada / salida son las siguientes:

cerrar(presentar [, cómo]) Cerrar archivo, tubería o coproceso. El opcional cómo solo debería ser
se utiliza al cerrar un extremo de una tubería de dos vías a un coproceso. Eso
debe ser un valor de cadena, ya sea "a" or "de".

obtener línea Set $0 del siguiente registro de entrada; colocar NF, NR, FNR, RT.

obtener línea <presentar Set $0 del siguiente registro de presentar; colocar NF, RT.

obtener línea var Set var del siguiente registro de entrada; colocar NR, FNR, RT.

obtener línea var <presentar Set var del siguiente registro de presentar, RT.

comando | obtener línea [var]
Ejecutar comando canalizando la salida ya sea en $0 or var, como arriba, y
RT.

comando |& obtener línea [var]
Ejecutar comando como un coproceso que canaliza la salida hacia $0 or var,
como arriba, y RT. Los coprocesos son un papar moscas extensión. (comando podemos
también ser un enchufe. Ver la subsección Especiales Archive nombresa continuación)

Next Deje de procesar el registro de entrada actual. El siguiente registro de entrada es
la lectura y el procesamiento comienzan de nuevo con el primer patrón en AWK
programa. Al llegar al final de los datos de entrada, papar moscas ejecuta cualquier
FIN normas).

archivo siguiente Deje de procesar el archivo de entrada actual. El siguiente registro de entrada leído
proviene del siguiente archivo de entrada. NOMBRE DEL ARCHIVO y ARGIND están actualizados,
FNR se restablece a 1 y el procesamiento comienza de nuevo con el primer patrón
en el programa AWK. Al llegar al final de los datos de entrada, papar moscas
ejecuta cualquier FIN normas).

Imprimir Imprime el registro actual. El registro de salida se termina con el
valor de RES.

Imprimir lista-expr Expresiones de impresión. Cada expresión está separada por el valor de
FSO. El registro de salida termina con el valor de RES.

Imprimir lista-expr >presentar Imprimir expresiones en presentar. Cada expresión está separada por
valor de FSO. El registro de salida termina con el valor de
RES.

Printf fmt, lista-expr Formatee e imprima. Ver La Printf Posicionamiento, Más abajo.

Printf fmt, lista-expr >presentar
Formatear e imprimir en presentar.

sistema(línea cmd) Ejecutar el comando línea cmdy devolver el estado de salida. (Esto puede
no estará disponible en sistemas que no sean POSIX).

fflush[presentar]) Vacíe todos los búferes asociados con el archivo de salida abierto o la tubería presentar.
If presentar falta o si es la cadena nula, entonces lave todo abierto
archivos de salida y tuberías.

Se permiten redirecciones de salida adicionales para Imprimir y Printf.

Imprimir ... >> presentar
Agrega salida al presentar.

Imprimir ... | comando
Escribe en una pipa.

Imprimir ... |& comando
Envía datos a un coproceso o socket. (Ver también la subsección Especiales Archive nombres,
abajo.)

La obtener línea El comando devuelve 1 en caso de éxito, 0 al final del archivo y -1 en caso de error. Sobre un
error, ERROR se establece en una cadena que describe el problema.

NOTA: Si no se abre un conector bidireccional, se devuelve un error no fatal a
la función de llamada. Si utiliza una tubería, coproceso o enchufe para obtener línea, O desde Imprimir or
Printf dentro de un bucle, tu debe utilizan el close() para crear nuevas instancias del comando o
enchufe. AWK no cierra automáticamente tuberías, enchufes o coprocesos cuando regresan
FEO.

La Printf Posicionamiento
Las versiones AWK del Printf declaración y sprintf () función (ver más abajo) aceptar la
siguientes formatos de especificación de conversión:

%c Un solo personaje. Si el argumento utilizado para %c es numérico, se trata como un
carácter e impreso. De lo contrario, se supone que el argumento es una cadena y el
sólo se imprime el primer carácter de esa cadena.

%d, %i Un número decimal (la parte entera).

%e, %E Un número de coma flotante de la forma [-]d.dddddde[+-]dd. %E usos de formato E
en lugar de e.

%f, %F Un número de coma flotante de la forma [-]Anuncios clasificados entre particulares en las Islas Baleres.dddddd. Si la biblioteca del sistema admite
eso, %F también está disponible. Esto es como %f, pero usa letras mayúsculas para especial
Valores "no es un número" e "infinito". Si %F no está disponible, papar moscas usos %f.

%g, %G Uso %e or %f conversión, la que sea más corta, con ceros no significativos
suprimido. los %G usos de formato %E en lugar de %e.

%o Un número octal sin signo (también un entero).

%u Un número decimal sin signo (de nuevo, un entero).

%s Una cadena de caracteres.

%x, %X Un número hexadecimal sin signo (un entero). los %X usos de formato A B C D E F en lugar de
a B C D e F.

%% Un único % personaje; no se convierte ningún argumento.

Opcional, los parámetros adicionales pueden encontrarse entre los % y la letra de control:

contar$ Ingrese al contar'th argumento en este punto del formato. A esto se le llama
posicional especificador y está destinado principalmente para su uso en versiones traducidas de
cadenas de formato, no en el texto original de un programa AWK. Es un papar moscas
extensión.

- La expresión debe estar justificada a la izquierda dentro de su campo.

espacio Para conversiones numéricas, anteponga los valores positivos con un espacio y los valores negativos
con un signo menos.

+ El signo más, usado antes del modificador de ancho (ver más abajo), dice que siempre se debe proporcionar un
signo para conversiones numéricas, incluso si los datos a formatear son positivos. los +
anula el modificador de espacio.

# Utilice una "forma alternativa" para determinadas letras de control. Para %o, proporcione un líder
cero. Para %xy %X, proporcione un líder 0x or 0X para un resultado distinto de cero. Para %e, %E,
%f y %F, el resultado siempre contiene un punto decimal. Para %gy %G, arrastrando
los ceros no se eliminan del resultado.

0 Un liderazgo 0 (cero) actúa como una bandera, que indica que la salida debe rellenarse con
ceros en lugar de espacios. Esto se aplica solo a los formatos de salida numéricos. Esta
La bandera solo tiene efecto cuando el ancho del campo es más ancho que el valor que se imprimirá.

' Un carácter de comillas simples instruye papar moscas para insertar el separador de miles de la configuración regional
carácter en números decimales, y para usar también el punto decimal de la configuración regional
carácter con formatos de coma flotante. Esto requiere un soporte regional correcto en el
Biblioteca C y en la definición de la configuración regional actual.

anchura El campo debe rellenarse con este ancho. El campo normalmente se rellena con
espacios. Con el 0 bandera, se rellena con ceros.

.anterior Un número que especifica la precisión que se utilizará al imprimir. Para el %e, %E, %f y
%F, formatos, esto especifica el número de dígitos que desea imprimir a la derecha de
el punto decimal. Para el %gy %G formatos, especifica el número máximo de
dígitos significantes. Para el %d, %i, %o, %u, %xy %X formatos, especifica el
número mínimo de dígitos para imprimir. Para %s, especifica el número máximo de
caracteres de la cadena que se debe imprimir.

La dinámica anchura y anterior capacidades de la ISO C printf () las rutinas son compatibles. A *
en lugar de anchura or anterior especificaciones hace que sus valores se tomen de
la lista de argumentos para Printf or sprintf (). Para usar un especificador posicional con una dinámica
ancho o precisión, suministre el contar$ después de la * en la cadena de formato. Por ejemplo,
"% 3 $ * 2 $. * 1 $ s".

Especiales Archive nombres
Al realizar la redirección de E / S desde Imprimir or Printf en un archivo, o vía obtener línea de un
archivo, papar moscas reconoce ciertos nombres de archivos especiales internamente. Estos nombres de archivo permiten el acceso
para abrir descriptores de archivos heredados de papar moscasproceso padre (normalmente el shell). Estas
Los nombres de archivo también se pueden usar en la línea de comando para nombrar archivos de datos. Los nombres de archivo son:

- La entrada estándar.

/ dev / stdin La entrada estándar.

/ dev / stdout La salida estándar.

/ dev / stderr La salida de error estándar.

/ dev / fd /n El archivo asociado con el descriptor de archivo abierto n.

Son especialmente útiles para los mensajes de error. Por ejemplo:

Imprimir "Usted soplaron ¡eso!" > "/ dev / stderr"

mientras que, de lo contrario, tendrías que usar

Imprimir "Usted soplaron ¡eso!" | "gato 1> y 2 "

Los siguientes nombres de archivo especiales se pueden utilizar con el |& Operador de co-proceso para crear
Conexiones de red TCP / IP:

/ inet / tcp /puerto/fantasma/informe
/ inet4 / tcp /puerto/fantasma/informe
/ inet6 / tcp /puerto/fantasma/informe
Archivos para una conexión TCP / IP en el puerto local puerto al host remoto fantasma en remoto
Puerto informe. Utilice un puerto de 0 para que el sistema elija un puerto. Usar / inet4 para forzar
una conexión IPv4, y / inet6 para forzar una conexión IPv6. Sencillo / inet utiliza el
predeterminado del sistema (muy probablemente IPv4).

/ inet / udp /puerto/fantasma/informe
/ inet4 / udp /puerto/fantasma/informe
/ inet6 / udp /puerto/fantasma/informe
Similar, pero use UDP / IP en lugar de TCP / IP.

Numérico Clave
AWK tiene las siguientes funciones aritméticas integradas:

atan2y, x) Devuelve el arcangente de y / x en radianes.

cosexpr) Devuelve el coseno de expr, que está en radianes.

Exp(expr) La función exponencial.

En t(expr) Truncar a entero.

Iniciar sesión(expr) La función de logaritmo natural.

rand () Devuelve un número aleatorio N, entre 0 y 1, tal que 0 ≤ N <1.

pecado(expr) Devuelve el seno de expr, que está en radianes.

sqrtexpr) Devuelve la raíz cuadrada de expr.

srand[expr]) Uso expr como la nueva semilla para el generador de números aleatorios. Si no expr is
siempre, utilice la hora del día. Devuelve la semilla anterior para el aleatorio
generador de números.

Cordón Clave
Papar moscas tiene las siguientes funciones de cadena integradas:

un tipo(s [, d [, cómo]]) Devuelve el número de elementos en la matriz de origen s. Ordenar el
contenido de s usando papar moscaslas reglas normales para comparar valores, y
reemplazar los índices de los valores ordenados s con secuencial
enteros que comienzan con 1. Si la matriz de destino opcional d is
especificado, primer duplicado s dentro dy luego ordenar d, dejándo el
índices de la matriz fuente s sin alterar. La cadena opcional cómo
controla la dirección y el modo de comparación. Valores válidos para
cómo ¿Alguna de las cadenas es válida para PROCINFO ["sorted_in"]. Lo
también puede ser el nombre de una función de comparación definida por el usuario como
descrita en PROCINFO ["sorted_in"].

asortis [, d [, cómo]])
Devuelve el número de elementos en la matriz de origen s. El comportamiento
es lo mismo que el de un tipo(), excepto que la matriz índices en
utilizado para ordenar, no los valores de la matriz. Cuando termine, la matriz es
indexados numéricamente, y los valores son los del original
índices. Los valores originales se pierden; así proporcionar un segundo
array si desea conservar el original. El propósito de
cadena opcional cómo es el mismo que se describe en un tipo() anterior.

gensubr, s, h [, t]) Buscar la cadena de destino t para coincidencias de la expresión regular
r. Si h es una cadena que comienza con g or G, luego reemplace todo
partidos de r s. De otra manera, h es un número que indica cuál
partido de r para reemplazar. Si t no se suministra, utilice $0 preferiblemente.
Dentro del texto de reemplazo s, la secuencia \n, Donde n es un dígito
del 1 al 9, se puede utilizar para indicar solo el texto que coincide
las n'la subexpresión entre paréntesis. La secuencia \0 representa
todo el texto coincidente, al igual que el personaje &. diferente a sub()
y gsub (), la cadena modificada se devuelve como resultado de la
función, y la cadena de destino original es no cambiado.

gsubr, s [, t]) Para cada subcadena que coincida con la expresión regular r en la cuerda
t, sustituye la cuerda sy devuelve el número de
sustituciones. Si t no se suministra, utilice $0. Un & existentes
El texto de reemplazo se reemplaza con el texto que en realidad
emparejado. Usar \& para obtener un literal &. (Esto debe escribirse como
"\\ &"; ver PAPAR MOSCAS: Eficaz AWK Programación para una discusión más completa
de las reglas para &y barras diagonales inversas en el texto de reemplazo de
sub(), gsub ()y gensub ().)

índice(s, t) Devuelve el índice de la cadena t en la cuerda s, o 0 si t no es
regalo. (Esto implica que los índices de caracteres comienzan en uno).
es un error fatal usar una constante de expresiones regulares para t.

largo([s]) Devuelve la longitud de la cuerda s, o la longitud de $0 if s no es
suministrado. Como una extensión no estándar, con un argumento de matriz,
longitud () devuelve el número de elementos de la matriz.

fósforo(s, r [, a]) Devolver la posición en s donde la expresión regular r ocurre, o
0 si r no está presente, y establezca los valores de RINICIO y LONGITUD.
Tenga en cuenta que el orden de los argumentos es el mismo que para el ~ operador:
str ~ re. Si matriz a está provisto, a se borra y luego los elementos
1 a través de n están llenos de las porciones de s que coinciden con el
correspondiente subexpresión entre paréntesis en r. El elemento 0
of a contiene la porción de s emparejado por todo el regular
expresión r. Subíndices a[n, "comienzo"]y a[n, "longitud"]
proporcionar el índice inicial en la cadena y la longitud respectivamente,
de cada subcadena coincidente.

patsplits, a [, r [, septiembres]])
Dividir la cuerda s en la matriz a y la matriz de separadores septiembres
en la expresión regular ry devuelve el número de campos.
Los valores de los elementos son las porciones de s eso coincidió r. El valor de
seps [i] es el separador que apareció delante de a[i+ 1]. Si r
se omite, FPAT se utiliza en su lugar. Las matrices a y septiembres en
despejado primero. La división se comporta de manera idéntica a la división de campo
FPAT, descrito arriba.

separar(s, a [, r [, septiembres]])
Dividir la cuerda s en la matriz a y la matriz de separadores septiembres
en la expresión regular ry devuelve el número de campos. Si
r se omite, FS se utiliza en su lugar. Las matrices a y septiembres en
despejado primero. seps [i] es el separador de campo que coincide con r
entre a[i] y a[i+ 1]. Si r es un solo espacio, luego liderando
espacio en blanco en s entra en el elemento adicional de la matriz seps [0] y
el espacio en blanco final entra en el elemento adicional de la matriz seps [n],
donde n es el valor de retorno de separar(s, a, r, septiembres). Terrible
se comporta de manera idéntica a la división de campos, descrita anteriormente.

sprintf (fmt, lista-expr) Imprimir lista-expr según fmty devuelve la cadena resultante.

strtonumstr) Examinar stry devuelve su valor numérico. Si str comienza con un
líder 0, trátelo como un número octal. Si str comienza con un
líder 0x or 0X, trátelo como un número hexadecimal. De lo contrario,
suponga que es un número decimal.

sub(r, s [, t]) Al igual que gsub (), pero reemplace solo la primera subcadena coincidente.

substrs, i [, n]) Devuelve como máximo n-subcadena de caracteres de s a partir de i. Si n
se omite, use el resto de s.

reducir(str) Devuelve una copia de la cadena str, con todos los caracteres en mayúscula
in str traducido a sus correspondientes contrapartes en minúscula.
Los caracteres no alfabéticos no se modifican.

toupperstr) Devuelve una copia de la cadena str, con todos los caracteres en minúscula
in str traducido a sus correspondientes contrapartes en mayúsculas.
Los caracteres no alfabéticos no se modifican.

Papar moscas es compatible con varios bytes. Esto significa que índice(), longitud (), substr () y partido() todo el trabajo
en términos de caracteres, no de bytes.

Horario Clave
Dado que uno de los usos principales de los programas AWK es procesar archivos de registro que contienen tiempo
información del sello, papar moscas proporciona las siguientes funciones para obtener marcas de tiempo y
formatearlos.

mktimedatepec)
torre datepec en una marca de tiempo del mismo formulario que devolvió systime ()y
devuelve el resultado. El datepec es una cadena de la forma AAAA MM DD HH MM SS [
horario de verano]. El contenido de la cadena son seis o siete números que representan
respectivamente, el año completo incluido el siglo, el mes del 1 al 12, el día de
el mes del 1 al 31, la hora del día del 0 al 23, el minuto del 0 al
59, el segundo de 0 a 60 y una bandera de horario de verano opcional. Los valores
de estos números no es necesario que estén dentro de los rangos especificados; por ejemplo, una hora
de -1 significa 1 hora antes de la medianoche. El calendario gregoriano de origen cero es
asumido, con el año 0 anterior al año 1 y el año -1 anterior al año 0. El tiempo es
se supone que está en la zona horaria local. Si la bandera de horario de verano es positiva,
se supone que la hora es el horario de verano; si es cero, se supone que el tiempo es
ser hora estándar; y si es negativo (el predeterminado), mktime () intenta determinar
si el horario de verano está en vigor para el horario especificado. Si datepec
no contiene suficientes elementos o si el tiempo resultante está fuera de rango,
mktime () devuelve -1.

strftime[formato [, fecha y hora[, bandera-utc]]])
Formato fecha y hora según la especificación en formato. Si bandera-utc is
presente y no es cero o no nulo, el resultado está en UTC; de lo contrario, el resultado
es en hora local. El fecha y hora debe ser de la misma forma que devolvió
systime (). Si fecha y hora falta, se usa la hora actual del día. Si formato
falta, un formato predeterminado equivalente a la salida de datos(1) se utiliza. El
El formato predeterminado está disponible en PROCINFO ["strftime"]. Consulte la especificación para
las strftime () función en ISO C para las conversiones de formato que están garantizadas
estar disponible.

systime () Devuelve la hora actual del día como el número de segundos desde la Época.
(1970-01-01 00:00:00 UTC en sistemas POSIX).

Poco Manipulaciones Clave
Papar moscas proporciona las siguientes funciones de manipulación de bits. Funcionan convirtiendo doble
valores de precisión de punto flotante para uintmax_t enteros, haciendo la operación, y luego
convertir el resultado de nuevo a punto flotante. Las funciones son:

y(v1, v2 [, ...]) Devuelve el AND bit a bit de los valores proporcionados en la lista de argumentos.
Debe haber al menos dos.

complval) Devuelve el complemento bit a bit de val.

lshiftval, contar) Devuelve el valor de val, desplazado a la izquierda por contar Bits.

o(v1, v2 [, ...]) Devuelve el OR bit a bit de los valores proporcionados en la lista de argumentos.
Debe haber al menos dos.

rshiftval, contar) Devuelve el valor de val, desplazado a la derecha por contar Bits.

xorv1, v2 [, ...]) Devuelve el XOR bit a bit de los valores proporcionados en la lista de argumentos.
Debe haber al menos dos.

Tipo de Propiedad Función
La siguiente función se utiliza con matrices multidimensionales.

isarrayx)
Devuelve verdadero si x es una matriz, falso en caso contrario.

Internacionalización Clave
Las siguientes funciones se pueden utilizar desde su programa AWK para traducir cadenas
en tiempo de ejecución. Para obtener todos los detalles, consulte PAPAR MOSCAS: Eficaz AWK Programación.

bindtextdomain (directorio [, dominio])
Especifique el directorio donde papar moscas busca el .gmo archivos, en caso de que no lo hagan o
no se puede colocar en las ubicaciones `` estándar '' (por ejemplo, durante la prueba). Vuelve
el directorio donde dominio está `` obligado ''.
El valor por defecto dominio es el valor de DOMINIO DE TEXTO. Si directorio es la cadena nula
(""), entonces bindtextdomain () devuelve el enlace actual para el dado dominio.

dcgettextcadena [, dominio [, categoría]])
Devuelve la traducción de cadena en el dominio de texto dominio para la categoría de configuración regional
categoría. El valor predeterminado para dominio es el valor actual de DOMINIO DE TEXTO.
valor predeterminado para categoría is "LC_MESSAGES".
Si proporciona un valor para categoría, debe ser una cadena igual a una de las conocidas
categorías de configuración regional descritas en PAPAR MOSCAS: Eficaz AWK Programación. Usted también debe
proporcionar un dominio de texto. Usar DOMINIO DE TEXTO si desea utilizar el dominio actual.

dcngettextstring1, string2, número [, dominio [, categoría]])
Devuelve la forma plural utilizada para número de la traducción de string1 y string2 in
dominio de texto dominio para la categoría de configuración regional categoría. El valor predeterminado para dominio is
el valor actual de DOMINIO DE TEXTO. El valor predeterminado para categoría is "LC_MESSAGES".
Si proporciona un valor para categoría, debe ser una cadena igual a una de las conocidas
categorías de configuración regional descritas en PAPAR MOSCAS: Eficaz AWK Programación. Usted también debe
proporcionar un dominio de texto. Usar DOMINIO DE TEXTO si desea utilizar el dominio actual.

USUARIO DEFINIDO Las funciones


Las funciones en AWK se definen de la siguiente manera:

función nombre (parámetro lista) { declaraciones }

Las funciones se ejecutan cuando se llaman desde dentro de expresiones en patrones o
comportamiento. Los parámetros reales proporcionados en la llamada de función se utilizan para instanciar el
parámetros formales declarados en la función. Las matrices se pasan por referencia, otras
las variables se pasan por valor.

Dado que las funciones no eran originalmente parte del lenguaje AWK, la provisión de
Las variables son bastante torpes: se declaran como parámetros adicionales en la lista de parámetros.
La convención es separar las variables locales de los parámetros reales mediante espacios adicionales en el
lista de parámetros. Por ejemplo:

función f (p, q, a, b) # a y b en local
{
...
}

/a B C/ { ... ; f (1, 2) ; ... }

Se requiere el paréntesis izquierdo en una llamada de función para seguir inmediatamente a la función
nombre, sin ningún espacio en blanco intermedio. Esto evita una ambigüedad sintáctica con el
operador de concatenación. Esta restricción no se aplica a las funciones integradas enumeradas
anterior.

Las funciones pueden llamarse entre sí y pueden ser recursivas. Parámetros de función usados ​​como local
las variables se inicializan en la cadena nula y el número cero al invocar la función.

Uso volvemos expr para devolver un valor de una función. El valor de retorno no está definido si no
se proporciona el valor, o si la función regresa "cayendo" al final.

Como papar moscas extensión, las funciones pueden llamarse indirectamente. Para hacer esto, asigne el nombre de
la función que se llamará, como una cadena, a una variable. Luego usa la variable como si fuera
eran el nombre de una función, con el prefijo @ firmar, así:
función myfunc ()
{
Imprimir "myfunc llamado"
...
}

{ ...
la_func = "myfunc"
@the_func () # llamar al a la_func a mifunc
...
}
A partir de la versión 4.1.2, esto funciona con funciones definidas por el usuario, funciones integradas y
funciones de extensión.

If --hilas ha sido proporcionado, papar moscas advierte sobre llamadas a funciones indefinidas en el momento del análisis,
en lugar de en tiempo de ejecución. Llamar a una función indefinida en tiempo de ejecución es un error fatal.

La palabra divertida puede usarse en lugar de función, aunque esto está en desuso.

DINAMICAMENTE CARGA NUEVO Las funciones


Puede agregar dinámicamente nuevas funciones integradas a la ejecución papar moscas intérprete con el
@carga declaración. Los detalles completos están más allá del alcance de esta página de manual; ver PAPAR MOSCAS:
Eficaz AWK Programación.

SEÑALES


La papar moscas El generador de perfiles acepta dos señales. SIGUSR1 hace que descargue un perfil y una función
pila de llamadas al archivo de perfil, que es awkprof.fuera, o cualquier archivo que se haya nombrado
con el --perfil opción. Luego continúa funcionando. SUSCRÍBETE causas papar moscas para volcar el
pila de llamadas de perfil y función y luego salir.

INTERNACIONALIZACION


Las constantes de cadena son secuencias de caracteres entre comillas dobles. En otro idioma
entornos de habla, es posible marcar cadenas en el programa AWK como requeridas
traducción al idioma natural local. Tales cadenas están marcadas en el programa AWK con
un subrayado inicial ("_"). Por ejemplo,

papar moscas 'COMENZAR { Imprimir "Hola, mundo" }'

siempre imprime Hola, mundo. Pero,

papar moscas 'COMENZAR { Imprimir _"Hola, mundo" }'

podría imprimir hola, monde en Francia.

Hay varios pasos involucrados en la producción y ejecución de un programa AWK localizable.

1. Añadir un EMPEZAR acción para asignar un valor a la DOMINIO DE TEXTO variable para establecer el dominio del texto
a un nombre asociado con su programa:

EMPEZAR { DOMINIO DE TEXTO = "myprog" }

Esto permite papar moscas para encontrar el .gmo archivo asociado con su programa. Sin esto
paso, papar moscas utiliza el la vida dominio de texto, que probablemente no contenga traducciones
para su programa

2. Marque todas las cadenas que deben traducirse con guiones bajos iniciales.

3. Si es necesario, utilice el dcgettext () y/o bindtextdomain () funciones en su programa,
según sea apropiado.

4. corrida papar moscas --gen-pot -f miprog.awk > miprog.pot generar un .maceta archivo para su
.

5. Proporcione las traducciones adecuadas y cree e instale las correspondientes .gmo archivos.

Las características de internacionalización se describen con todo detalle en PAPAR MOSCAS: Eficaz AWK
Programación.

POSIX COMPATIBILIDAD


Un objetivo principal para papar moscas es compatible con el estándar POSIX, así como con el
última versión de Brian Kernighan awk. Para tal fin, papar moscas incorpora lo siguiente
características visibles para el usuario que no se describen en el libro AWK, pero que son parte de Brian
La versión de Kernighan de awky están en el estándar POSIX.

El libro indica que la asignación de variables de línea de comando ocurre cuando awk de otra manera
abre el argumento como un archivo, que está después de la EMPEZAR se ejecuta la regla. Sin embargo, en
implementaciones anteriores, cuando tal asignación aparecía antes de cualquier nombre de archivo, el
la asignación sucedería antes las EMPEZAR se ejecutó la regla. Las aplicaciones llegaron a depender de
Esta característica." Cuándo awk fue cambiado para que coincida con su documentación, el -v opción para
la asignación de variables antes de que se agregara la ejecución del programa para dar cabida a las aplicaciones que
dependía del antiguo comportamiento. (Esta característica fue acordada tanto por Bell
Laboratorios y los desarrolladores de GNU.)

Al procesar argumentos, papar moscas utiliza la opción especial "-" para señalar el final de
argumentos. En el modo de compatibilidad, advierte sobre opciones no definidas, pero las ignora.
En funcionamiento normal, dichos argumentos se pasan al programa AWK para que los procese.

El libro AWK no define el valor de retorno de srand (). El estándar POSIX lo tiene
devuelve la semilla que estaba usando, para permitir realizar un seguimiento de las secuencias de números aleatorios.
Por lo tanto srand () in papar moscas también devuelve su semilla actual.

Otras características nuevas son: El uso de múltiples -f opciones (de MKS awk); el REINAR formación;
las \ay \v secuencias de escape (hechas originalmente en papar moscas y retroalimentado en la campana
Versión de laboratorios); el reducir() y toupper () funciones integradas (de la campana
Versión de laboratorios); y las especificaciones de conversión ISO C en Printf (hecho primero en
la versión de Bell Laboratories).

HISTÓRICO CATEGORIAS


Hay una característica de las implementaciones históricas de AWK que papar moscas apoyos: es posible
llamar al longitud () función incorporada no solo sin argumento, sino incluso sin
paréntesis! Por lo tanto,

a = de largo # Santo Algol 60, ¡Hombre murciélago!

es lo mismo que cualquiera de

a = longitud ()
a = longitud ($ 0)

El uso de esta función es una mala práctica y papar moscas emite una advertencia sobre su uso si --hilas is
especificado en la línea de comando.

GNU AMPLIACIONES


Papar moscas tiene una cantidad demasiado grande de extensiones para POSIX awk. Se describen en este
sección. Todas las extensiones descritas aquí se pueden deshabilitar invocando papar moscas con el
--tradicional or --posix .

Las siguientes características de papar moscas no están disponibles en POSIX awk.

· No se realiza ninguna búsqueda de ruta para los archivos nombrados mediante el -f opción. Por lo tanto, la AWKPATH
La variable de entorno no es especial.

· No hay ninguna función para realizar la inclusión de archivos (papar moscas's @incluir mecanismo).

· No hay posibilidad de agregar dinámicamente nuevas funciones escritas en C (papar moscas's @carga
mecanismo).

· Los \x secuencia de escape. (Deshabilitado con --posix.)

· La capacidad de continuar las líneas después ? y :. (Deshabilitado con --posix.)

· Constantes octales y hexadecimales en programas AWK.

· Los ARGIND, MODO BIN, ERROR, HILAS, RT y DOMINIO DE TEXTO las variables no son especiales.

· Los IGNORAR CASO variable y sus efectos secundarios no están disponibles.

· Los ANCHOS DE CAMPO división de campo de ancho fijo y variable.

· Los FPAT división de campo y variable basada en valores de campo.

· Los PROCINFO matriz no está disponible.

· El uso de RS como una expresión regular.

· No se reconocen los nombres de archivos especiales disponibles para la redirección de E / S.

· Los |& operador para la creación de coprocesos.

· Los ARCHIVO DE INICIO y ARCHIVO FINAL los patrones especiales no están disponibles.

· La capacidad de dividir caracteres individuales usando la cadena nula como el valor de FS,
y como tercer argumento para separar().

· Un cuarto argumento opcional para separar() para recibir los textos del separador.

· El segundo argumento opcional de la close() función.

· El tercer argumento opcional de la partido() función.

· La capacidad de utilizar especificadores posicionales con Printf y sprintf ().

· La capacidad de pasar una matriz a longitud ().

· Los y(), un tipo(), asorti (), bindtextdomain (), compl (), dcgettext (), dcngettext (),
gensub (), lshift (), mktime (), o(), patsplit (), rshift (), strftime (), strtonum (),
systime () y xor () funciones.

· Cadenas localizables.

El libro AWK no define el valor de retorno del close() función. Papar moscas's close()
devuelve el valor de cerrar(3) o cerrar(3), al cerrar un archivo o tubería de salida,
respectivamente. Devuelve el estado de salida del proceso al cerrar una tubería de entrada. El
El valor de retorno es -1 si el archivo, canalización o coproceso nombrado no se abrió con un
redirección.

Cuándo papar moscas se invoca con el --tradicional opción, si el fs argumento a la -F opción es
"T", entonces FS se establece en el carácter de tabulación. Tenga en cuenta que escribir papar moscas -Pie ... simplemente causa
el shell para citar la "t", y no pasa "\ t" a la -F opción. Dado que este es un
caso especial bastante feo, no es el comportamiento predeterminado. Este comportamiento tampoco
ocurrir si --posix ha sido especificado. Para obtener realmente un carácter de tabulación como campo
separador, es mejor usar comillas simples: papar moscas -Pie' ....

MEDIO AMBIENTE VARIABLES


La AWKPATH La variable de entorno se puede utilizar para proporcionar una lista de directorios que papar moscas
busca cuando se buscan archivos nombrados a través del -f, --Archivo, -i y --incluir opciones Si
la búsqueda inicial falla, la ruta se busca nuevamente después de agregar .awk al nombre del archivo.

La AWKLIBPATH La variable de entorno se puede utilizar para proporcionar una lista de directorios que papar moscas
busca cuando se buscan archivos nombrados a través del -l y --carga .

La GAWK_READ_TIMEOUT La variable de entorno se puede utilizar para especificar un tiempo de espera en
milisegundos para leer la entrada de una terminal, tubería o comunicación bidireccional, incluida
enchufes

Para la conexión a un host remoto a través de un enchufe, GAWK_SOCK_RETRIES controla el número de
reintentos, y GAWK_MSEC_SLEEP y el intervalo entre reintentos. El intervalo está en
milisegundos. En sistemas que no son compatibles tu duerme(3), el valor se redondea a un
número integral de segundos.

If POSIXLY_CORRECT existe en el medio ambiente, entonces papar moscas se comporta exactamente como si --posix tenido
se ha especificado en la línea de comando. Si --hilas ha sido especificado, papar moscas emite una advertencia
mensaje a este efecto.

SALIR ESTADO


Si salida la declaración se usa con un valor, luego papar moscas sale con el valor numérico dado
a la misma.

De lo contrario, si no hubo problemas durante la ejecución, papar moscas sale con el valor de la C
constante SALIR_ÉXITO. Suele ser cero.

Si ocurre un error, papar moscas sale con el valor de la constante C EXIT_FAILURE. Es
generalmente uno.

If papar moscas sale debido a un error fatal, el estado de salida es 2. En sistemas que no son POSIX, este
el valor se puede asignar a EXIT_FAILURE.

VERSIÓN INFORMACIÓN:


Esta página de manual documenta papar moscas, Versión 4.1.

AUTORES


La versión original de UNIX awk fue diseñado e implementado por Alfred Aho, Peter
Weinberger y Brian Kernighan de Bell Laboratories. Brian Kernighan continúa
mantenerlo y mejorarlo.

Paul Rubin y Jay Fenlason, de la Free Software Foundation, escribieron papar moscas, ser compatible
con la versión original de awk distribuido en la séptima edición UNIX. John Woods
contribuyó con una serie de correcciones de errores. David Trueman, con contribuciones de Arnold Robbins,
hecho papar moscas compatible con la nueva versión de UNIX awk. Arnold Robbins es el actual
mantenedor.

See PAPAR MOSCAS: Eficaz AWK Programación para obtener una lista completa de los contribuyentes a papar moscas y su
documentación.

Consulte las README presentar en el papar moscas distribución de información actualizada sobre mantenedores
y qué puertos son compatibles actualmente.

INSECTO REPORTAJES


Si encuentra un error en papar moscas, envíe un correo electrónico a [email protected]. Por favor,
incluir su sistema operativo y su revisión, la versión de papar moscas (Desde papar moscas --versión),
qué compilador de C usó para compilarlo, y un programa de prueba y datos que son tan pequeños como
posible para reproducir el problema.

Antes de enviar un informe de error, haga lo siguiente. Primero, verifique que tiene
la última versión de papar moscas. Muchos errores (generalmente sutiles) se corrigen en cada lanzamiento,
y si el tuyo está desactualizado, es posible que el problema ya se haya resuelto. En segundo lugar, consulte
si configura la variable de entorno LC_TODOS a LC_ALL = C hace que las cosas se comporten como tú
suponer. Si es así, es un problema de configuración regional y puede que realmente sea un error o no. Finalmente por favor
Lea atentamente esta página de manual y el manual de referencia para asegurarse de que lo que cree que es un
bug realmente lo es, en lugar de solo una peculiaridad en el lenguaje.

Hagas lo que hagas, hazlo NO publicar un informe de error en comp.lang.awk. Mientras que el papar moscas desarrolladores
leer ocasionalmente este grupo de noticias, publicar informes de errores, hay una forma poco confiable de informar
insectos. En su lugar, utilice las direcciones de correo electrónico indicadas anteriormente. En realidad.

Si está utilizando un sistema basado en GNU / Linux o BSD, es posible que desee enviar un informe de error a
el vendedor de su distribución. Está bien, pero envíe una copia al funcionario.
dirección de correo electrónico también, ya que no hay garantía de que el informe de error se reenvíe a
las papar moscas mantenedor.

Use gawk en línea usando los servicios de onworks.net


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

Comandos de Linux

Ad