<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>El CoDiGo K &#187; AWK</title>
	<atom:link href="http://www.elcodigok.com.ar/category/lenguajes-de-programacion/awk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.elcodigok.com.ar</link>
	<description>Un blog de Ayuda a Programadores</description>
	<lastBuildDate>Wed, 01 Feb 2012 14:09:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>AWK para Principiantes: Mi primer ejecutable</title>
		<link>http://www.elcodigok.com.ar/2011/07/awk-para-principiantes-mi-primer-ejecutable/</link>
		<comments>http://www.elcodigok.com.ar/2011/07/awk-para-principiantes-mi-primer-ejecutable/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 23:19:15 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[AWK]]></category>
		<category><![CDATA[consola]]></category>
		<category><![CDATA[ejemplos]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=2497</guid>
		<description><![CDATA[AWK es uno de los lenguajes de programación más utilizados por los Administradores de Sistemas colaborando en la realización de tareas en el procesamiento de datos e información. Hoy estamos comenzando una serie de artículos desde El CoDiGo K para dar a conocer muchas de las características que AWK puede ofrecernos. Con el paso del tiempo vamos conociendo lo práctico ...]]></description>
			<content:encoded><![CDATA[<p><strong>AWK</strong> es uno de los lenguajes de programación más utilizados por los Administradores de Sistemas colaborando en la realización de tareas en el procesamiento de datos e información. Hoy estamos comenzando una serie de artículos desde <strong>El CoDiGo K</strong> para dar a conocer muchas de las características que AWK puede ofrecernos.</p>
<p>Con el paso del tiempo vamos conociendo lo práctico que puede resultar saber utilizar correctamente AWK en todas las situaciones. Por lo general les cuento que hay que armar script en línea de comandos para solucionar algún problema en particular, revisar los archivos log por ejemplo o simplemente ver el estado de la cola de correos, pero hay casos en las que existen tareas repetitivas y para ello lo mejor es hacer un archivo ejecutable cuyo contenido sea nuestro script en AWK.</p>
<p>Lo primero que les recomiendo hacer es conocer el PATH en donde se encuentra AWK para incorporarlo a nuestro ejecutable, para ello podemos utilizar el comando whereis de la siguiente manera</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ <span style="color: #c20cb9; font-weight: bold;">whereis</span> <span style="color: #c20cb9; font-weight: bold;">awk</span><br />
awk: <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>man<span style="color: #000000; font-weight: bold;">/</span>man1<span style="color: #000000; font-weight: bold;">/</span>awk.1.gz</div></td></tr></tbody></table></div>
<p>Claramente podemos ver que se encuentra en /usr/bin/awk, el próximo paso es crear un archivo donde vamos a escribir nuestro script, recordemos que para este archivo no es obligación que sea de alguna extensión en particular por ejemplo &#8220;.awk&#8221;, &#8220;.bash&#8221; o &#8220;.sh&#8221;, así que yo les recomiendo que por cuestiones de prolijidad adopten algún estándar o un patrón como desarrolladores, en mi caso para recordar mis aplicaciones si son de AWK les dejo la extensión &#8220;.awk&#8221; y si están programadas con BASH simplemente &#8220;.sh&#8221;, esto es a elección y simplemente para que lo tengan en cuenta.</p>
<p>Voy a utilizar el editor de texto Vim, sinceramente pero que me resulta muy cómodo y práctico pero ustedes pueden usar el que les gusta, nano, pico, mcedit, kate, &#8230;. y lo voy a nombrar como “ejemplo01.awk”</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">vim</span> ejemplo01.awk</div></td></tr></tbody></table></div>
<p>Otro pequeño tips que utilizo por lo general cuando comienzo y aprendo lenguajes nuevo, librerías, etc. es ordenar mis directorios de tal manera que sea simple de recordad, yo les aseguro que años atrás era desastroso mi /home, todo estaba hay, desde documentos PDF hasta los script de pruebas, imágenes, etc. Con el tiempo entendí y domestiqué algunas buenas prácticas que les recomiendo por ejemplo</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>elcodigo<span style="color: #000000; font-weight: bold;">/</span>Programacion<span style="color: #000000; font-weight: bold;">/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AWK<span style="color: #000000; font-weight: bold;">/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Documentos<span style="color: #000000; font-weight: bold;">/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Ejemplos<span style="color: #000000; font-weight: bold;">/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Bash<span style="color: #000000; font-weight: bold;">/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PHP<span style="color: #000000; font-weight: bold;">/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Python<span style="color: #000000; font-weight: bold;">/</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Ruby<span style="color: #000000; font-weight: bold;">/</span></div></td></tr></tbody></table></div>
<p>Les aseguro que van a ser un poco más productivos lo mismo acoplen esta nueva y buen práctica con los nombres de sus aplicaciones, yo por comodidad sabía nombrarlos con dos letras seguidas de su extensión así que mi vida no podía ser más caótica si seguiría con esa modalidad, por eso decidí llamarlo a este primer ejemplo práctico “ejemplo01.awk”.</p>
<p>Sin distracciones volvamos a la creación del archivo y como primera línea agregamos y asociamos el intérprete de AWK a nuestra nueva aplicación</p>
<div class="codecolorer-container awk mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="awk codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color:#808080;">#!/usr/bin/awk -f</span></div></td></tr></tbody></table></div>
<p>El argumento <strong>-f</strong> según la documentación de AWK le indica al intérprete que lea un archivo en lugar de la línea de comandos.</p>
<p>Toda aplicación para tener una referencia siempre es bueno agregarle algún tipo de comentario, para saber un poco de que se trata el script, cuál es su función, algunos programadores acostumbran a dejar datos como la versión, desarrollador, fecha de modificación, etc.</p>
<p>En AWK los comentarios se pueden agregar anteponiendo el hashtag &#8220;#&#8221;</p>
<div class="codecolorer-container awk mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="awk codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color:#808080;"># esta es una linea de comentario.</span></div></td></tr></tbody></table></div>
<p>A continuación podemos escribir nuestro script de ejemplo con algunos mensajes impresos en pantalla.</p>
<div class="codecolorer-container awk mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="awk codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #C20CB9; font-weight: bold;">BEGIN</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span> <br />
&nbsp; &nbsp; <span style="color: #0BD507; font-weight: bold;">print</span> <span style="color: #ff0000;">&quot;El script se inicio.&quot;</span><br />
&nbsp; &nbsp; <span style="color: #0BD507; font-weight: bold;">print</span> <span style="color: #ff0000;">&quot;El script se ejecuto.&quot;</span><br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span></div></td></tr></tbody></table></div>
<p>Guardamos el contenido de nuestro script que mucha funcionalidad práctica no tiene pero sí a modo de entender es sumamente enriquecedora.</p>
<p>Ahora vamos a necesitar del comando chmod para cambiar los permisos y asignarlo un permiso de ejecución y eso lo podemos hacer de la siguiente manera:</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">chmod</span> +x ejemplo01.awk</div></td></tr></tbody></table></div>
<p>Para finalizar solo basta ejecutar nuestro primer script de la siguiente manera</p>
<div class="codecolorer-container bash mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$.<span style="color: #000000; font-weight: bold;">/</span>ejemplo01.awk<br />
El script se inicio.<br />
El script se ejecuto.</div></td></tr></tbody></table></div>
<p>Hoy aprendimos como hacer nuestro primer ejecutable con AWK, algo realmente simple y que no debería llevarles muchos problemas para generarlo, la próxima entrada prometo hablarles de las estructuras repetitivas y sobre variables que es un tema muy interesante.</p>
<p>Recuerden dejar todos sus comentarios, dudas, sugerencias para continuar evolucionando y aprendiendo nuevas herramientas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2011/07/awk-para-principiantes-mi-primer-ejecutable/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AWK para Principiantes: Ejemplos prácticos</title>
		<link>http://www.elcodigok.com.ar/2011/06/awk-para-principiantes-ejemplos-practicos/</link>
		<comments>http://www.elcodigok.com.ar/2011/06/awk-para-principiantes-ejemplos-practicos/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 22:34:37 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[AWK]]></category>
		<category><![CDATA[ejemplos]]></category>
		<category><![CDATA[variable]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=2479</guid>
		<description><![CDATA[AWK es uno de los lenguajes de programación más utilizados por los Administradores de Sistemas colaborando en la realización de tareas en el procesamiento de datos e información. Hoy estamos comenzando una serie de artículos desde El CoDiGo K para dar a conocer muchas de las características que AWK puede ofrecernos. Luego de haber explicado un poco la introducción en ...]]></description>
			<content:encoded><![CDATA[<p><strong>AWK</strong> es uno de los lenguajes de programación más utilizados por los Administradores de Sistemas colaborando en la realización de tareas en el procesamiento de datos e información. Hoy estamos comenzando una serie de artículos desde<strong> El CoDiGo K </strong>para dar a conocer muchas de las características que AWK puede ofrecernos.<span id="more-2479"></span></p>
<p>Luego de haber explicado un poco la introducción en el artículo anterior, sería sumamente interesante comenzar a realizar nuestros primeros ejemplos para ir familiarizándonos con AWK y la versatilidad de sus comandos.</p>
<p>La idea es comenzar a realizar búsquedas sobre un archivo y se me ocurrió utilizar el archivo <strong>service</strong> que se encuentra en <strong>/etc/service</strong> es archivo a modo de referencia podemos encontrar información referida a los puertos, protocolos y servicios de una máquina. Además este archivo se encuentra en todas las distribuciones GNU/Linux con lo cuál nos facilita y nos ayuda a avanzar en estos ejemplos.</p>
<p>Bueno, que vamos a hacer? Pues me interesaría saber que protocolos y servicio utilizan un puerto que tenga el número <strong>53</strong>, una vez que lo identifiquemos sería interesante que nos muestro todos los resultados.</p>
<div class="codecolorer-container awk mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="awk codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">awk '<span style="color:black;">/</span><span style="color: #000000;">53</span><span style="color:black;">/</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span> <span style="color: #0BD507; font-weight: bold;">print</span> <span style="color:#000088;">$0</span> <span style="color: #7a0874; font-weight: bold;">&#125;</span>' <span style="color:black;">/</span>etc<span style="color:black;">/</span>services</div></td></tr></tbody></table></div>
<p>Es interesante aclarar que las barras ( / ) indican que para el ejemplo 53 es un patrón de búsqueda o también conocidas como expresiones regulares, una vez que encuentra coincidencias con print $0 imprime la línea actual.</p>
<div class="codecolorer-container awk mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br /></div></td><td><div class="awk codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">awk '<span style="color:black;">/</span><span style="color: #000000;">53</span><span style="color:black;">/</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span> <span style="color: #0BD507; font-weight: bold;">print</span> <span style="color:#000088;">$0</span> <span style="color: #7a0874; font-weight: bold;">&#125;</span>' <span style="color:black;">/</span>etc<span style="color:black;">/</span>services<br />
domain &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">53</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># name-domain server</span><br />
domain &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">53</span><span style="color:black;">/</span>udp<br />
courier &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">530</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; rpc<br />
conference &nbsp; &nbsp; &nbsp;<span style="color: #000000;">531</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; chat<br />
netnews &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">532</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; readnews<br />
netwall &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">533</span><span style="color:black;">/</span>udp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#808080;"># for emergency broadcasts</span><br />
gdomap &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">538</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#808080;"># GNUstep distributed objects</span><br />
gdomap &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">538</span><span style="color:black;">/</span>udp<br />
cfengine &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">5308</span><span style="color:black;">/</span>tcp<br />
cfengine &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">5308</span><span style="color:black;">/</span>udp<br />
mdns &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">5353</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># Multicast DNS</span><br />
mdns &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">5353</span><span style="color:black;">/</span>udp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># Multicast DNS</span><br />
knetd &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">2053</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># Kerberos de-multiplexor</span><br />
noclog &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">5354</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># noclogd with TCP (nocol)</span><br />
noclog &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">5354</span><span style="color:black;">/</span>udp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># noclogd with UDP (nocol)</span><br />
hostmon &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">5355</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># hostmon uses TCP (nocol)</span><br />
hostmon &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">5355</span><span style="color:black;">/</span>udp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># hostmon uses UDP (nocol)</span><br />
xpilot &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">15345</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#808080;"># XPilot Contact Port</span><br />
xpilot &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">15345</span><span style="color:black;">/</span>udp</div></td></tr></tbody></table></div>
<p>Que les parece ahora se doblamos el desafío y utilizamos dos patrones de búsquedas sobre el mismo archivo, en este caso no solo consultemos aquellos servicios que tengan el puerto <strong>53</strong> sino ademas el <strong>80</strong>.</p>
<div class="codecolorer-container awk mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="awk codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">awk '<span style="color:black;">/</span><span style="color: #000000;">53</span><span style="color:black;">/</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span> <span style="color: #0BD507; font-weight: bold;">print</span> <span style="color:#000088;">$0</span><span style="color: #7a0874; font-weight: bold;">&#125;</span> <span style="color:black;">/</span><span style="color: #000000;">80</span><span style="color:black;">/</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span> <span style="color: #0BD507; font-weight: bold;">print</span> <span style="color:#000088;">$0</span><span style="color: #7a0874; font-weight: bold;">&#125;</span>' <span style="color:black;">/</span>etc<span style="color:black;">/</span>services</div></td></tr></tbody></table></div>
<p>Con esto estamos imprimiendo todas las coincidencias del puerto 53 y 80, en caso que ambas se encuentren en una misma línea simplemente lo imprimirá dos veces.</p>
<div class="codecolorer-container awk mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br /></div></td><td><div class="awk codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">awk '<span style="color:black;">/</span><span style="color: #000000;">53</span><span style="color:black;">/</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span> <span style="color: #0BD507; font-weight: bold;">print</span> <span style="color:#000088;">$0</span><span style="color: #7a0874; font-weight: bold;">&#125;</span> <span style="color:black;">/</span><span style="color: #000000;">80</span><span style="color:black;">/</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span> <span style="color: #0BD507; font-weight: bold;">print</span> <span style="color:#000088;">$0</span><span style="color: #7a0874; font-weight: bold;">&#125;</span>' <span style="color:black;">/</span>etc<span style="color:black;">/</span>services<br />
domain &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">53</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># name-domain server</span><br />
domain &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">53</span><span style="color:black;">/</span>udp<br />
www &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">80</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;http &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># WorldWideWeb HTTP</span><br />
www &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">80</span><span style="color:black;">/</span>udp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># HyperText Transfer Protocol</span><br />
courier &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">530</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; rpc<br />
conference &nbsp; &nbsp; &nbsp;<span style="color: #000000;">531</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; chat<br />
netnews &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">532</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; readnews<br />
netwall &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">533</span><span style="color:black;">/</span>udp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#808080;"># for emergency broadcasts</span><br />
gdomap &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">538</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#808080;"># GNUstep distributed objects</span><br />
gdomap &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">538</span><span style="color:black;">/</span>udp<br />
socks &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">1080</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># socks proxy server</span><br />
socks &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">1080</span><span style="color:black;">/</span>udp<br />
cfengine &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">5308</span><span style="color:black;">/</span>tcp<br />
cfengine &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">5308</span><span style="color:black;">/</span>udp<br />
mdns &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">5353</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># Multicast DNS</span><br />
mdns &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">5353</span><span style="color:black;">/</span>udp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># Multicast DNS</span><br />
amanda &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">10080</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#808080;"># amanda backup services</span><br />
amanda &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">10080</span><span style="color:black;">/</span>udp<br />
knetd &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">2053</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># Kerberos de-multiplexor</span><br />
omirr &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">808</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; omirrd &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># online mirror</span><br />
omirr &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">808</span><span style="color:black;">/</span>udp &nbsp; &nbsp; &nbsp; &nbsp; omirrd<br />
noclog &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">5354</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># noclogd with TCP (nocol)</span><br />
noclog &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">5354</span><span style="color:black;">/</span>udp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># noclogd with UDP (nocol)</span><br />
hostmon &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">5355</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># hostmon uses TCP (nocol)</span><br />
hostmon &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">5355</span><span style="color:black;">/</span>udp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># hostmon uses UDP (nocol)</span><br />
canna &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">5680</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># cannaserver</span><br />
zope<span style="color:black;">-</span>ftp &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">8021</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># zope management by ftp</span><br />
webcache &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">8080</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># WWW caching service</span><br />
tproxy &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">8081</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># Transparent Proxy</span><br />
omniorb &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">8088</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#808080;"># OmniORB</span><br />
omniorb &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">8088</span><span style="color:black;">/</span>udp<br />
xpilot &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">15345</span><span style="color:black;">/</span>tcp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#808080;"># XPilot Contact Port</span><br />
xpilot &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">15345</span><span style="color:black;">/</span>udp</div></td></tr></tbody></table></div>
<p>Que les parece un ejemplo más para continuar aprendiendo lo magnifico y práctico que puede resultar utilizar awk en cualquier momento.</p>
<p>Ahora nos toca contar con el primer ejemplo cuántos servicios se encuentran asociados a un puerto que contenga el numero 53.</p>
<div class="codecolorer-container awk mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="awk codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">awk '<span style="color:black;">/</span><span style="color: #000000;">53</span><span style="color:black;">/</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span> sum <span style="color:black;">+</span>=<span style="color: #000000;">1</span> <span style="color: #7a0874; font-weight: bold;">&#125;</span> <span style="color: #C20CB9; font-weight: bold;">END</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span> <span style="color: #0BD507; font-weight: bold;">print</span> sum <span style="color: #7a0874; font-weight: bold;">&#125;</span>' <span style="color:black;">/</span>etc<span style="color:black;">/</span>services<br />
<span style="color: #000000;">19</span></div></td></tr></tbody></table></div>
<p>Ahora podemos notar como con la variable sum podemos utilizarla para contar cada una de las líneas de nuestro patrón de búsqueda escrito.</p>
<p>Asombrado hasta aquí? La buena noticia es que esto recién comienza y así como a través de unos sencillos ejemplos de patrones de búsquedas podemos comenzar a comprender el comportamiento de awk vamos a continuar avanzando hasta lograr ejecutar complejos y poderosos script.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2011/06/awk-para-principiantes-ejemplos-practicos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AWK para Principiantes: Introducción</title>
		<link>http://www.elcodigok.com.ar/2011/05/awk-para-principiantes-introduccion/</link>
		<comments>http://www.elcodigok.com.ar/2011/05/awk-para-principiantes-introduccion/#comments</comments>
		<pubDate>Mon, 23 May 2011 15:35:42 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[AWK]]></category>
		<category><![CDATA[Administrador de Sistemas]]></category>
		<category><![CDATA[principiante]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=2463</guid>
		<description><![CDATA[AWK es uno de los lenguajes de programación más utilizados por los Administradores de Sistemas colaborando en la realización de tareas en el procesamiento de datos e información. Hoy estamos comenzando una serie de artículos desde El CoDiGo K para dar a conocer muchas de las características que AWK puede ofrecernos. ¿Qué es AWK? AWK es un lenguaje de programación ...]]></description>
			<content:encoded><![CDATA[<p><strong>AWK</strong></a> es uno de los lenguajes de programación más utilizados por los Administradores de Sistemas colaborando en la realización de tareas en el procesamiento de datos e información. Hoy estamos comenzando una serie de artículos desde <strong>El CoDiGo K</strong> para dar a conocer muchas de las características que AWK puede ofrecernos.<span id="more-2463"></span></p>
<h2>¿Qué es AWK?</h2>
<p>AWK es un lenguaje de programación diseñado para procesar datos en texto plano, su nombre deriva de las iniciales de los apellidos de sus autores: <em>Alfred <strong>A</strong>ho</em>, <em>Peter <strong>W</strong>einberger</em> y <em>Brian <strong>K</strong>ernighan</em>.</p>
<p>AWK tiene la particularidad de ser una de las primeras herramientas en aparecer en UNIX y ganó su popularidad al ser implementado en las tuberías de los comandos de UNIX.de hecho es allí en donde lo vamos a ver en acción.</p>
<p><strong>¿Que necesitamos saber para aprender a utilizar AWK?</strong> Es una pregunta frecuente que suelo escuchar, y creo que mi respuesta sería un poco de conocimientos básico en la línea de consola de GNU y un condimento indispensable que son las ganas de aprender algo nuevo.</p>
<p>La utilidad principal de AWK es que permite procesar secuencialmente uno o varios archivos de entrada, éstos se comparan con una o varias plantillas que también podemos llamarla patrones de búsquedas o expresiones regulares, donde a cada patrón se le asigna una acción que normalmente procesa la información y la envía a una salida estándar.</p>
<p>Muchos dicen que su sintaxis es similar a la del lenguaje <a href="http://www.elcodigok.com.ar/category/lenguajes-de-programacion/cc/"><strong>C</strong></a>, pero la particularidad de AWK es que es un lenguaje interpretado por lo cuál no debe ser previamente un proceso de compilación para ser ejecutado.</p>
<p>Para esta serie de artículos sobre AWK para Principiantes, voy a utilizar como Sistema Operativo base Debian Squeeze 6.0, de hecho muchas de las distribuciones GNU que conozco incluso sistemas como FreeBSD, OpenBSD y AIX ya lo incorporan en sus sistema. Por ello es que casi nunca se especifica su instalación aunque no deja de ser una tarea sumamente simple, basta con buscar su alternativa libre conocida como GNU awk o gawk.</p>
<h2>Estructura de un programa en AWK</h2>
<p>Para tomar nota, toda la magia de AWK gira en torno a la comparación con una expresión o patrón que a ella se le asocia una acción, su sintaxis para comprender un poco más se:</p>
<div class="codecolorer-container awk mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="awk codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">expresión <span style="color: #7a0874; font-weight: bold;">&#123;</span> acción <span style="color: #7a0874; font-weight: bold;">&#125;</span></div></td></tr></tbody></table></div>
<p>Si la evaluación de la expresión resulta positiva, entonces se ejecutará todas las acciones asociadas, este proceso se reitera con cada línea del archivo de entrada hasta su EOF.</p>
<p>EOF (abreviatura de end-of-file, fin de fichero en inglés) es un indicador o marca de que no hay más información que recuperar de una fuente de datos. La fuente de datos puede ser un fichero o un flujo de datos (stream). Conceptualmente en caso de un fichero indica que se llegó al final del mismo, en caso de un stream es que se finalizó la transmisión o transferencia de datos.</p>
<p>Y llegamos al momento que todo programador estaba esperando y es la del ejemplo simple, o más conocido como “hello, world”</p>
<p>En nuestra línea de comandos podemos escribir lo siguiente</p>
<div class="codecolorer-container awk mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="awk codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">echo <span style="color: #ff0000;">&quot;Hola, mundo&quot;</span> | awk '<span style="color: #7a0874; font-weight: bold;">&#123;</span> <span style="color: #0BD507; font-weight: bold;">print</span> <span style="color:#000088;">$0</span> <span style="color: #7a0874; font-weight: bold;">&#125;</span>'<br />
Hola, mundo</div></td></tr></tbody></table></div>
<p>Si son curiosos y comienzan a jugar un poco con AWK observen que pasaría si en vez de imprimir <strong>$0</strong> imprimen <strong>$1</strong> o <strong>$2</strong>.</p>
<h2>Resúmen</h2>
<p>Bueno hasta aquí llegamos por hoy, creo que ya es interesante saber de que se trata AWK y fundamentalmente que es lo que podemos procesar con este magnífico y ágil lenguaje. Hoy conocimos un poco sobre su historia, el orígen de su nombre y el primer ejemplo que podemos realizar. Gracias por leer este artículo y realmente sería muy productivo contar sus comentarios y dudas para avanzar mucho más.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2011/05/awk-para-principiantes-introduccion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Retomando AWK y algunos enlaces interesantes</title>
		<link>http://www.elcodigok.com.ar/2007/09/retomando-awk-y-algunos-enlaces-interesantes/</link>
		<comments>http://www.elcodigok.com.ar/2007/09/retomando-awk-y-algunos-enlaces-interesantes/#comments</comments>
		<pubDate>Sun, 30 Sep 2007 18:55:00 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[AWK]]></category>
		<category><![CDATA[Enlaces]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=62</guid>
		<description><![CDATA[Nuevamente retomando este lenguaje de programación AWK les quería dejar algunos enlaces que utilicé para introducirme más en este tema, son muy básicos y para la gente que le gusta programar y es utiliza la plataforma GNU/Linux les va a venir muy bien conocerlos y tenerlos en la mira. Redoval.comClub.Telepolis.comLinux.org.uy Ojala que lo disfruten a estos link y que aprovechen ...]]></description>
			<content:encoded><![CDATA[<p>Nuevamente retomando este lenguaje de programación <a href="http://www.linux.org.uy/uylug/cursos/awk/awk.html">AWK</a> les quería dejar algunos enlaces que utilicé para introducirme más en este tema, son muy básicos y para la gente que le gusta programar y es utiliza la plataforma <a href="http://elcodigok.blogspot.com/search/label/GNU%2FLinux">GNU/Linux</a> les va a venir muy bien conocerlos y tenerlos en la mira.</p>
<p><a href="http://www.rodoval.com/paginalen.php?len=AWK">Redoval.com</a><br /><a href="http://club.telepolis.com/jagar1/Unix/Awk.htm">Club.Telepolis.com</a><br /><a href="http://www.linux.org.uy/uylug/cursos/awk/awk.html">Linux.org.uy</a><br /><span id="fullpost"><br />
<blockquote>Ojala que lo disfruten a estos link y que aprovechen esta utilidad, tutoriales, documentos, etc, totalmente libres para cualquier persona.</p></blockquote>
<p></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2007/09/retomando-awk-y-algunos-enlaces-interesantes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AWK</title>
		<link>http://www.elcodigok.com.ar/2007/09/awk/</link>
		<comments>http://www.elcodigok.com.ar/2007/09/awk/#comments</comments>
		<pubDate>Sun, 23 Sep 2007 04:42:00 +0000</pubDate>
		<dc:creator>Daniel M. Maldonado</dc:creator>
				<category><![CDATA[AWK]]></category>
		<category><![CDATA[Leng. de Programación]]></category>

		<guid isPermaLink="false">http://www.elcodigok.com.ar/?p=59</guid>
		<description><![CDATA[Con el afán de seguir investigando lenguajes de programación, la implementación, su uso y otras característica de los mismo nos encontramos con AWK y que rápidamente les cuento que es un Lenguaje de Programación desañadas para procesar Bases de Datos en texto. El nombre AWK deriva de los apellidos de los autores del lenguaje: Alfred Aho, Peter Weinberger, y Brian ...]]></description>
			<content:encoded><![CDATA[<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_QbjL4lTr2UU/RvXxwDbvisI/AAAAAAAAAHU/Eqtc8QHyTDY/s1600-h/awk.jpeg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_QbjL4lTr2UU/RvXxwDbvisI/AAAAAAAAAHU/Eqtc8QHyTDY/s320/awk.jpeg" alt="" id="BLOGGER_PHOTO_ID_5113258759806749378" border="0" /></a>Con el afán de seguir investigando lenguajes de programación, la implementación, su uso y otras característica de los mismo nos encontramos con <span style="font-weight: bold;">AWK</span> y que rápidamente les cuento que es un <a href="http://elcodigok.blogspot.com/search/label/Lenguajes%20de%20Programaci%C3%B3n">Lenguaje de Programación</a> desañadas para procesar <a href="http://elcodigok.blogspot.com/search/label/Bases%20de%20Datos">Bases de Datos</a> en texto.</p>
<p>El nombre <span style="font-weight: bold;">AWK</span> deriva de los apellidos de los autores del lenguaje: Alfred <span style="font-weight: bold;">A</span>ho, Peter <span style="font-weight: bold;">W</span>einberger, y Brian <span style="font-weight: bold;">K</span>ernighan. awk</p>
<p>El poder, brevedad y limitaciones de los programas de <span style="font-weight: bold;">AWK</span> y los guiones de sed inspiraron a Larry Wall a escribir Perl. Debido a su densa notación, todos estos lenguajes son frecuentemente usados para escribir programas de una línea.<br /><span id="fullpost"><br />Como otra reseña a favor de <span style="font-weight: bold;">AWK</span>, fue una de las primeras herramientas en aparecer en el universo <span style="font-style: italic;">UNIX</span> y gano popularidad como una manera de añadir funcionalidad a las famosas tuberías de <span style="font-style: italic;">Unix</span>.</p>
<p>Este lenguaje esta influido por <a href="http://elcodigok.blogspot.com/search/label/C%2FC%2B%2B">C</a> y shell entre otros.<br /></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.elcodigok.com.ar/2007/09/awk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

