Este es el comando awkplan9 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
awk: lenguaje de procesamiento y escaneo dirigido por patrones
SINOPSIS
awk [ -Ffs ] [ -v var = valor ] [ -señorn ] [ -mfn ] [ -f prog [ prog ] [ presentar ... ]
DESCRIPCIÓN
Awk escanea cada entrada presentar para líneas que coinciden con cualquiera de un conjunto de patrones especificados
literalmente en prog o en uno o más archivos especificados como -f presentar. Con cada patrón allí
puede ser una acción asociada que se realizará cuando una línea de un presentar coincide con el
patrón. Cada línea se compara con la parte del patrón de cada acción de patrón
declaración; la acción asociada se realiza para cada patrón coincidente. El nombre del archivo
significa la entrada estándar. Alguna presentar de la forma var = valor se trata como una cesión, no
un nombre de archivo, y se ejecuta en el momento en que se habría abierto si fuera un nombre de archivo.
La opción -v seguido por var = valor es una tarea que debe hacerse antes prog es ejecutado;
cualquier numero de -v las opciones pueden estar presentes. -F fs La opción define el separador del campo de entrada.
ser la expresión regular fs.
Una línea de entrada normalmente está formada por campos separados por espacios en blanco o por
expresión FS. Los campos se indican $1, $2, ..., tiempo $0 se refiere a toda la línea.
If FS es nulo, la línea de entrada se divide en un campo por carácter.
Para compensar la implementación inadecuada de la gestión del almacenamiento, el -señor la opción puede ser
utilizado para establecer el tamaño máximo del registro de entrada, y el -mf opción para establecer el máximo
numero de campos.
Una declaración de patrón-acción tiene la forma
patrón { action }
Una falta { action } significa imprimir la línea; un patrón faltante siempre coincide. Patrón-
Las declaraciones de acción están separadas por líneas nuevas o punto y coma.
Una acción es una secuencia de declaraciones. Una declaración puede ser una de las siguientes:
if ( expresión ) ambiental [ demás ambiental ]
tiempo ( expresión ) ambiental
por( expresión ; expresión ; expresión ) ambiental
por( var in matriz ) ambiental
do ambiental tiempo ( expresión )
romper
continue
{[ ambiental ... ]}
expresión # comúnmente var = expresión
impresión [ lista-de-expresiones ] [> expresión ]
Printf formato [, lista-de-expresiones ] [> expresión ]
regreso [ expresión ]
siguiente # omitir los patrones restantes en esta línea de entrada
nextfile # omita el resto de este archivo, abra el siguiente, comience en la parte superior
elimínelo matriz[ expresión ] # eliminar un elemento de la matriz
elimínelo matriz # eliminar todos los elementos de la matriz
Salida [ expresión ] # salir inmediatamente; el estado es expresión
Las sentencias terminan con punto y coma, líneas nuevas o llaves derechas. Un vacío expresión-
lista representa $0. Las constantes de cadena se citan "", y se reconocen los escapes habituales de C
dentro de. Las expresiones toman valores numéricos o de cadena según corresponda y se crean utilizando
los operadores + - * / % ^ (exponenciación) y concatenación (indicada por un espacio en blanco).
Los operadores ! ++ -- += -= *= /= %= ^= > >= < <= == != ?: también están disponibles en
Expresiones Las variables pueden ser escalares, elementos de matriz (denotados x[i]) o campos.
Las variables se inicializan en la cadena nula. Los subíndices de matriz pueden ser cualquier cadena, no
necesariamente numérico; esto permite una forma de memoria asociativa. Varios subíndices
como [i, j, k] esta permitido; los constituyentes están concatenados, separados por el valor
of SUBSEP.
La Imprimir declaración imprime sus argumentos en la salida estándar (o en un archivo si >presentar or
>>presentar está presente o en una tubería si |cmd está presente), separados por el campo de salida actual
separador y terminado por el separador de registros de salida. presentar y cmd puede ser literal
nombres o expresiones entre paréntesis; valores de cadena idénticos en diferentes declaraciones denotan
el mismo archivo abierto. los Printf formatea su lista de expresiones de acuerdo con el
formato (ver fprintf(2)). La función incorporada cerrar(expr) cierra el archivo o tubería expr.
La función incorporada fflushexpr) limpia cualquier salida almacenada en búfer para el archivo o canalización expr.
Las funciones matemáticas exp, log, sqrt, el pecado, carro y atan2 están integradas. Otras
en funciones:
de largo la longitud de su argumento tomado como una cadena, o de $0 si no hay argumento.
rand número aleatorio en (0,1)
sardina establece semilla para rand y devuelve la semilla anterior.
int trunca a un valor entero
utf convierte su argumento numérico, un número de carácter, en una cadena UTF
substrs, m, n)
el n-subcadena de caracteres de s que comienza en la posición m contados desde 1.
índice(s, t)
la posición en s donde la cuerda t ocurre, o 0 si no es así.
fósforo(s, r)
la posición en s donde la expresión regular r ocurre, o 0 si no es así. los
las variables RINICIO y LONGITUD se establecen en la posición y la longitud de la coincidencia
cadena.
separar(s, a, f)
divide la cuerda s en elementos de matriz a[ 1 ], a[ 2 ], ..., a[n]y vuelve n.
la separación se realiza con la expresión regular fs o con el separador de campo FS if
fs no se da. Una cadena vacía como separador de campo divide la cadena en una
elemento de matriz por carácter.
sub(r, t, s)
sustitutos t para la primera aparición de la expresión regular r en la cuerda s.
If s no se da, $0 se utiliza.
g-sub mismo como por debajo excepto que se reemplazan todas las apariciones de la expresión regular; por debajo
y g-sub devuelva el número de reemplazos.
sprintf (fmt, expr, ...)
la cadena resultante del formateo expr ... de acuerdo con la Printf formato fmt
sistema(cmd)
ejecuta cmd y devuelve su estado de salida
reducir(str)
devuelve una copia de str con todos los caracteres en mayúsculas traducidos a su
equivalentes en minúsculas correspondientes.
toupperstr)
devuelve una copia de str con todos los caracteres en minúscula traducidos a su
equivalentes en mayúsculas correspondientes.
La `` función '' obtener línea conjuntos $0 al siguiente registro de entrada del archivo de entrada actual;
obtener línea <presentar conjuntos $0 al siguiente registro de presentar. obtener línea x establece variable x preferiblemente.
Finalmente, cmd | obtener línea canaliza la salida de cmd cobren obtener línea; cada llamada de obtener línea devoluciones
la siguiente línea de salida de cmd. En todos los casos, obtener línea devuelve 1 para una entrada exitosa,
0 para el final del archivo y -1 para un error.
Los patrones son combinaciones booleanas arbitrarias (con ! || &&) de expresiones regulares y
Expresiones relacionales. Las expresiones regulares son como en regexp(6). Regular aislado
las expresiones en un patrón se aplican a toda la línea. Las expresiones regulares también pueden aparecer en
expresiones relacionales, usando los operadores ~ y !~. /re/ es un regular constante
expresión; cualquier cadena (constante o variable) puede usarse como expresión regular, excepto
en la posición de una expresión regular aislada en un patrón.
Un patrón puede constar de dos patrones separados por una coma; en este caso, la acción es
realizado para todas las lneas desde una ocurrencia del primer patrn aunque una ocurrencia de
el segundo.
Una expresión relacional es una de las siguientes:
expresión partido expresión regular
expresión reubicarse expresión
expresión in nombre-matriz
(expr,expr, ...) in nombre-matriz
donde un reubicarse es cualquiera de los seis operadores relacionales en C, y un partido es cualquiera ~
(partidos) o !~ (no coincide). Un condicional es una expresión aritmética, un relacional
expresión, o una combinación booleana de estos.
Los patrones especiales EMPEZAR y FIN se puede utilizar para capturar el control antes de la primera entrada
Se lee la línea y después de la última. EMPEZAR y FIN no combinar con otros patrones.
Nombres de variables con significados especiales:
CONVFMT
formato de conversión utilizado al convertir números (predeterminado % .6g)
FS expresión regular utilizada para separar campos; también configurable por opción -Ffs.
NF número de campos en el registro actual
NR número ordinal del registro actual
FNR número ordinal del registro actual en el archivo actual
NOMBRE DEL ARCHIVO
el nombre del archivo de entrada actual
RS separador de registros de entrada (nueva línea predeterminada)
FSO separador de campo de salida (en blanco predeterminado)
RES separador de registros de salida (nueva línea predeterminada)
OFMT formato de salida para números (predeterminado % .6g)
SUBSEP separa varios subíndices (por defecto 034)
ARGC recuento de argumentos, asignable
ARGV matriz de argumentos, asignable; los miembros no nulos se toman como nombres de archivo
REINAR
matriz de variables de entorno; los subíndices son nombres.
Las funciones pueden definirse (en la posición de una declaración de acción de patrón) así:
función foo (a, b, c) {...; volver x}
Los parámetros se pasan por valor si son escalares y por referencia si el nombre de la matriz; las funciones pueden ser
llamado recursivamente. Los parámetros son locales a la función; todas las demás variables son globales.
Por lo tanto, las variables locales se pueden crear proporcionando un exceso de parámetros en la función
definición.
EJEMPLOS
longitud ($ 0)> 72
Imprime líneas de más de 72 caracteres.
{imprimir $ 2, $ 1}
Imprima los dos primeros campos en orden opuesto.
COMIENZO {FS = ", [\ t] * | [\ t] +"}
{imprimir $ 2, $ 1}
Lo mismo, con campos de entrada separados por comas y / o espacios en blanco y tabulaciones.
{s + = $ 1}
FIN {imprimir "suma es", s, "promedio es", s / NR}
Sume la primera columna, imprima la suma y el promedio.
/ iniciar /, / detener /
Imprime todas las líneas entre pares de inicio / fin.
EMPEZAR {# Simular echo(1)
para (i = 1; i <ARGC; i ++) printf "% s", ARGV [i]
printf "\ n"
Salida }
FUENTE
/ sys / src / cmd / awk
Use awkplan9 en línea usando los servicios de onworks.net