Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción A AWK Linux Centos
Introducción A AWK Linux Centos
1 de 5
http://www.alcancelibre.org/staticpages/index.php/introduccion-awk
Portada
Sondeo
Qu opinas de ALDOS?
Foros
Manuales
Servicios
Cursos Linux
Google+
Descargas
Servicios
Buscar...
Introduccin a AWK
No
Iniciar Sondeo
Resultados
1999-2012 Joel Barrios Dueas. Usted es libre de copiar, distribuir y comunicar pblicamente la obra y hacer obras derivadas bajo las
condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su
publicacin, a trav s de cualquie r medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada,
slo puede distribuir la obra generada bajo una licencia idntica a sta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los trminos de la
licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos
derivados de usos legtimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La informacin contenida en
este documento y los derivados de ste se proporcionan tal cual son y los autores no asumirn responsabilidad alguna si el usuario o lector, hace
mal uso de stos. Esta licencia de ber aparecer como primer texto del documento distribuido
Introduccin.
Acerca de AWK.
AWK, cuyo nombre deriva de la primera letra de los apellidos de sus autores Alfred Aho, Peter Weinberger y Brian Kernighan, es
un lenguaje de programacin que fue diseado con el objetivo de procesar datos basados sobre texto y una de las primeras
herramientas en aparecer en Unix. Utiliza listas en un ndice ordenado por cadenas clave (listas asociativas) y expresiones
regulares. Es un lenguaje ampliamente utilizado para la programacin de guiones ejecutables pues aade funcionalidad a las
tuberas en los sistemas operativos tipo POSIX. Est incluido en las instalaciones bsicas de prcticamente todas las
distribuciones de GNU/Linux.
18-06-2013 20:49
Introduccin a AWK
2 de 5
http://www.alcancelibre.org/staticpages/index.php/introduccion-awk
Procedimientos.
A continuacin se mostrarn ejemplos del uso de AWK.
El siguiente mandato especfica que al inicio se imprima en la salida la frase "Hola mundo" y terminar el procesamiento.
awk 'BEGIN { print "Hola mundo"; exit }'
Lo anterior deber devolver una salida como la siguiente:
Hola mundo
Si se genera el archivo prueba.txt del siguiente modo:
echo -e "Columna1\tColumna2\tColumna3\tColumna4\n" > ejemplo.txt
Y se visualiza con el mandato cat:
cat ejemplo.txt
Devolver el siguiente contenido:
Columna1
Columna2
Columna3
Columna4
Si se utiliza el mandato awk para que solo muestre la columna 1 y la columna 3 del siguiente modo:
awk '{ print $1, $3}' ejemplo.txt
La salida devolver lo siguiente:
Columna1 Columna3
Si se utiliza el mandato awk para que solo muestre la columna 3 y la columna 1, en ese orden, del siguiente modo:
awk '{ print $3, $1}' ejemplo.txt
La salida devolver lo siguiente:
Columna3 Columna1
Si se aaden datos al archivo ejemplo.txt del siguiente modo:
echo -e "Dato1\tDato2\tDato3\tDato4\n" >> ejemplo.txt
echo -e "Dato5\tDato6\tDato7\tDato8\n" >> ejemplo.txt
echo -e "Dato9\tDato10\tDato11\tDato12\n" >> ejemplo.txt
Y se visualiza con el mandato cat:
cat ejemplo.txt
Devolver el siguiente contenido:
Columna1
Dato1
Dato2
Dato5
Dato6
Dato9
Dato10
Columna2
Dato3
Dato4
Dato7
Dato8
Dato11 Dato12
Columna3
Columna4
Si se utiliza nuevamente el mandato awk para que solo muestre la columna 1 y la columna 3 del siguiente modo:
awk '{ print $1, $3 }' ejemplo.txt
La salida devolver lo siguiente:
Columna1 Columna3
Dato1 Dato3
Dato5 Dato7
Dato9 Dato11
Si se utiliza el mandato awk del siguiente modo para que solo muestre solo la lnea cuya columna contenga la expresin regular
Dato5:
awk '/Dato5/ { print }' ejemplo.txt
La salida devolver lo siguiente:
Dato5
Dato6
Dato7
Dato8
Si se utiliza el mandato awk del siguiente modo para que solo muestre solo la lnea cuya columna contenga la expresin regular
18-06-2013 20:49
Introduccin a AWK
3 de 5
http://www.alcancelibre.org/staticpages/index.php/introduccion-awk
|
|
|
*
|
|
|
*
Si se utiliza el mandato awk del siguiente modo para que muestre solo las lneas con menos de 35 caracteres en el archivo
/etc/crontab:
awk 'length < 35' /etc/crontab
La salida devolver algo similar a lo siguiente:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# | .------------- hour (0 - 23)
# | | | | |
Utilice el mandato vi para crear el archivo usuario.txt:
vi usuario.txt
Aada el siguiente contenido:
Fulano Algo
Calle Mengana 123
Colonia Perengana
Ciudad de Zutano, C.P. 123456
Para que el mandato awk reconozca cada lnea como un registro completo, en lugar de considerar cada palabra como una
columna, se utiliza 'BEGIN { FS="\n" ; RS=""}', donde el valor de FS (Field Separator o separador de campo) se establece
como un retorno de carro y el valor de RS (Record Separator o separador de registro) se establece como una lnea vaca. Si
utiliza el siguiente mandato donde se establecen los valores mencionados para FS y RS y se pide se impriman los valores de
cada registro (cada lnea) separados por una coma y un espacio:
awk 'BEGIN { FS="\n"; RS="" } \
{ print $1 ", " $2 ", " $3 ", " $4 }' usuario.txt
La salida devolver lo siguiente:
Fulano Algo, Calle Mengana 123, Colonia Perengana, Ciudad de Zutano, C.P. 123456
El mandato awk puede realizar conteo de lneas, palabras y caracteres. El siguiente mandato se establece que el valor de w sea
igual al nmero de campos (New Field o NF), c sea igual la longitud de cada campo y que se imprima el nmero de campos, el
valor de w y el valor de c:
awk '{ w += NF; c += length } \
END { print \
"Campos: " NR , "\nPalabras: " w, "\nCaracteres: " c }' \
usuario.txt
La salida devolver lo siguiente:
Campos: 4
Palabras: 12
Caracteres: 74
Genere el archivo numeros.txt con el siguiente contenido, donde las columnas sern separadas por un tabulador:
1 2 3 4
5 6 7 8
9 10 11 12
18-06-2013 20:49
Introduccin a AWK
4 de 5
http://www.alcancelibre.org/staticpages/index.php/introduccion-awk
el mandato awk puede realizar operaciones matemticas. El siguiente mandato establece que la variable s es igual a la suma del
valor de los campos de la primera columna del archivo numeros.txt e imprime el valor de s:
awk '{ s += $1 } END { print s }' numeros.txt
La salida devolver lo siguiente (que corresponde al resultado de la suma de 1+5+9):
15
Si se hace lo mismo, pero con los valores de la columna 2:
awk '{ s += $2 } END { print s }' numeros.txt
La salida devolver lo siguiente (que corresponde al resultado de la suma de 2+6+10):
18
Para hacer conteo de frecuencia de palabras, Se establece que el valor para FS (Field Separator o separador de lnea) sea igual
a expresiones regulares que van desde la letra a hasta la letra z y desde la letra A hasta la letra Z, se establece que el valor de la
variable i es igual a 1 y menor al nmero de campos.
awk 'BEGIN { FS="[^a-zA-Z]+" } \
{ for (i=1; i<=NF; i++) words[tolower($i)]++ } \
END { for (i in words) print i, words[i] }' /etc/crontab
La salida devolver algo similar a lo siguiente:
15
job 1
to 1
usr 2
root 1
shell 1
mon 1
hour 1
bin 3
executed 1
name 1
wed 1
fri 1
details 1
of 3
feb 1
week 1
sun 1
path 1
crontabs 1
or 3
be 1
apr 1
definition 1
month 2
sbin 2
tue 1
jan 1
day 2
command 1
for 1
sunday 1
man 1
mar 1
user 1
minute 1
example 1
see 1
bash 1
sat 1
mailto 1
thu 1
ltima Edicin 15/06/2013, 12:14 | 35,436 Accesos
Noticias Recientes
Comentarios Recientes
Enlaces Recientes
* OpenERP
> [+3]
* Adempiere
Geeklog
Dezoft.com Soluciones TI
> [+2]
El Rincn de Tux
La informacin en Internet...
>> [+188]
18-06-2013 20:49
Introduccin a AWK
5 de 5
http://www.alcancelibre.org/staticpages/index.php/introduccion-awk
18-06-2013 20:49