- APL
- JAVASCRIPT
- PYTHON
- FALCON
Awk : es un lenguaje de programación que fue diseñado con el objetivo de procesar datos basados sobre texto y una de las primeras herramientas en aparecer en Unix. Su nombre deriva de la primera letra de los apellidos de sus autores Alfred Aho, Peter Weinberger y Brian Kernighan.
Utiliza listas en un índice ordenado por cadenas clave (listas asociativas) y expresiones regulares. Es un lenguaje ampliamente utilizado para la programación de guiones ejecutables pues añade funcionalidad a las tuberías en los sistemas operativos tipo POSIX. Está incluido en las instalaciones básicas de prácticamente todas las distribuciones de GNU/Linux.
Estructura de los programas escritos en AWK
La orden awk utiliza un fichero o emisión de ordenes y un fichero o emisión de entrada. El primero indica como procesar al segundo. El fichero de entrada es por lo general texto con algún formato que puede ser un fichero o bien la salida de otro mandato.
La sintaxis general utilizada para el mandato awk sigue el siguiente patrón:
awk
'expresión-regular { orden }'
Cuando se utiliza el mandato, éste examina el fichero de entrada y ejecuta la orden cuando encuentra la expresión regular especificada.
El siguiente modelo ejecutaría la orden al inicio del programa y antes de que sean procesados los datos del fichero de entrada:
awk 'BEGIN { orden
}'
El siguiente modelo ejecutaría la orden al final del programa y después de que sean procesados los datos del fichero de entrada:
awk 'BEGIN { orden
}'
El siguiente modelo ejecutaría la orden por cada una de las líneas del fichero de entrada:
awk '{ orden }'
Ejemplos de uso de AWK
A continuación vamos a ir realizando ejemplos con esta orden, mientras se van comentando diversas características.
- Especificar que al inicio se imprima en la salida la frase "Hola mundo" y terminar el procesamiento:
"Hola mundo"; exit }'
Hola mundo
Como ejecutar los programas awk
Hay varias formas de ejecutar un programa awk: .Si el programa es corto, es más fácil para incluir en el comando que ejecuta awk, así:
wk-f programa de archivo de entrada-input-archivo1 archivo2 ...
Esta sección trata sobre los mecanismos, junto con algunas variaciones de cada uno.
El programa comienza con un comentario que describe las opciones y
usage
la función que imprime un mensaje de uso y salidas. usage
se llama, si se suministran argumentos no válidos.# cut.awk --- implement cut in awk # Cut.awk --- aplicar corte en awk # Arnold Robbins, arnold@gnu.org, Public Domain # Arnold Robbins, arnold@gnu.org, Dominio Público # May 1993 # 05 1993 # Options: # Opciones: # -f list Cut fields #-F lista Corte campos # -dc Field delimiter character #-Dc carácter delimitador de campo # -c list Cut characters #-C lista de personajes de corte # # # -s Suppress lines without the delimiter character #-S líneas de reprimir sin el carácter delimitador function usage( e1, e2) uso de la función (E1, E2) { { e1 = "usage: cut [-f list] [-dc] [-s] [files...]" e1 = "uso: corte [f-list] [CC] [-s] archivos [...]" e2 = "usage: cut [-c list] [files...]" e2 = "uso: corte [-c lista] archivos [...]" print e1 > "/dev/stderr" imprimir e1> "/ dev / stderr" print e2 > "/dev/stderr" imprimir e2> "/ dev / stderr" exit 1 la salida 1 } }
Las variables e1
y e2
se utilizan para que la función se adapta muy bien en la pantalla.
Luego viene una BEGIN
regla que analiza las opciones de línea de comandos. . En él se establecen FS
a un solo carácter de tabulación, ya que es cut
'default s separador de campo. El separador de campo de salida también está dispuesto a ser el mismo que el separador de campos de entrada. Luego getopt
se utiliza para el paso a través de la línea de comando opciones. Una u otra de las variables by_fields
o by_chars
se establece en true, para indicar que el tratamiento debe ser realizado por los campos o caracteres, respectivamente. When cutting by characters, the output field separator is set to the null string. Al cortar los personajes, el separador de campo de salida se fija a la cadena nula.INICIO \ { { FS = "\t" # default FS = "\ t" default # OFS = FS OFS = FS while ((c = getopt(ARGC, ARGV, "sf:c:d:")) != -1) { while ((c = getopt (argc, argv, "sf: c: d:"!)) = -1) { if (c == "f") { if (c == "f") { by_fields = 1 by_fields = 1 fieldlist = Optarg fieldlist = OPTARG } else if (c == "c") { } Else if (c == "c") { by_chars = 1 by_chars = 1 fieldlist = Optarg fieldlist = OPTARG OFS = "" OFS = "" } else if (c == "d") { } Else if (c == "d") { if (length(Optarg) > 1) { if (longitud (OPTARG)> 1) { printf("Using first character of %s" \ printf ("Uso de primer carácter de% s" \ " for delimiter\n", Optarg) > "/dev/stderr" "Delimitador de \ n", OPTARG)> "/ dev / stderr" Optarg = substr(Optarg, 1, 1) Optarg = substr (OPTARG, 1, 1) } } FS = Optarg FS = OPTARG OFS = FS OFS = FS if (FS == " ") # defeat awk semantics if (FS == "") # semántica awk derrota FS = "[ ]" FS = "[]" } else if (c == "s") } Else if (c == "s") suppress++ suprimir + + else más usage() uso () } } for (i = 1; i < Optind; i++) for (i = 1; i optind <; i + +) ARGV[i] = "" ARGV [i] = ""
Link para descargar manuales de awk
Ruby
Ruby es un lenguaje de scripts para una programación orientada a objetos rápida y sencilla. Fue creado en Japón en el año 1993 por Yukihiro Matsumoto. Lenguaje de guiones interpretado:* Posibilidad de realizar directamente llamadas al sistema operativo
* Potentes operaciones sobre cadenas de caracteres y expresiones regulares
* Retroalimentación inmediata durante el proceso de desarrollo
Rápido y sencillo:
* Son innecesarias las declaraciones de variables
* Las variables son de tipo dinámico.
* La sintaxis es simple y consistente
* La gestión de la memoria es automática
Programación orientada a objetos:
* Todo es un objeto
* Clases, herencia, métodos, …
* Métodos singleton
* Mixins por módulos
* Iteradores y cierres
También:
* Enteros de precisión múltiple
* Modelo de procesamiento de excepciones
* Carga dinámica
* Hilos
Ruby es un lenguaje de programación interpretado, de muy alto nivel y orientado a objetos. ¿Por qué otro lenguaje más? Pues porque Ruby es diferente. Cuando Matz dice que Ruby es orientado a objetos, realmente quiere decir que es orientado a objetos. En este lenguaje, hasta los números y los caracteres literales son objetos, y tienen los métodos de su clase, que pueden llamarse normalmente.
Ejemplo :
Descripcion:
Este pequeno programa muestra como hacer una clase como heredar e instanciar las mismas
# en Primer lugar, la estructura CASE
# inicializo con un valor la variable i
i = 5
# la estructura caso se fija por que rama va a seguir
# en este caso se fija en que rango entra
case i
when 1
print "(CASE) El valor es 1\n"
when 2..5
print "(CASE) El valor esta entre 2 y 5\n"
when 6..10
print "(CASE) El valor esta entre 6 y 10\n"
end
# en Segundo lugar, la estructura WHILE
# inicializa la variable j
j = 0
# La estructura de control hace se fije en la condición antes
# de entrar en el bucle, siempre tiene que tener una condicion de salida
while (j <= 10)
print "(WHILE) El valor es #{j}\n"
j += 1
end
# en Tercer lugar, la estructura FOR
for num in (0..10)
print "(FOR) nuevo valor #{num}\n"
end
Manual de Ruby
Qbasic :
QuickBasic es un lenguaje de programación de alto nivel, que se puede utilizar de forma compilada. Tiene varios predecesores. El primero fue BasicA, desarrollado por Microsoft a principios de los 80. Sus características principales:
- tenía pocas instrucciones
- era un lenguaje interpretado
- se requería números identificativos de cada línea de código, haciendo la programación tediosa y limitada
- los archivos fuente se guardaban en un formato propio
- los archivos fuente se guardaban en un formato de texto regular, legibles por otros programas
- la interfaz de programación era ligeramente más amigable
- una interfaz de usuario bastante sencilla
- una extensa ayuda on-line que incluía índice, e ideas y ejemplos acerca de cómo usar cada instrucción
- utilidades básicas de edición, como búsquedas y sustituciones, cortado y pegado, etc., que aumentaban la productividad
- no era preciso incluir números de línea
Ejemplo :
CLS
INPUT "Ingrese un numero: ", num
primo = 1
FOR i = 2 TO num
IF num MOD i = 0 THEN
IF i <> num THEN
primo = 0
END IF
END IF
NEXT
IF primo = 0 THEN
PRINT "No es primo."
ELSE
PRINT "Si es primo."
END IF
INPUT "", tmp
Manual de Qbasic
este ultimo ejemplo es un ejemplo muy sencillo que te muestra si un numero es primo o no
Pues, aquí sí hay referencias. Me hubiera gustado más explicación de los códigos, en particular cuando no es algo que tú hiciste solito desde cero. +3 en segundas.
ResponderEliminar