16.05.2013 Views

de Dattatec.com SRL. - Pixels & Code

de Dattatec.com SRL. - Pixels & Code

de Dattatec.com SRL. - Pixels & Code

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

40<br />

TAYLOR, SIEMPRE<br />

PRESENTE<br />

Pero primero, recor<strong>de</strong>mos el enunciado <strong>de</strong>l misterioso<br />

Taylor, que <strong>com</strong>o ya mencionamos en la primera<br />

parte, <strong>de</strong>ben leerse <strong>de</strong> abajo hacia arriba, es <strong>de</strong>cir,<br />

en or<strong>de</strong>n <strong>de</strong> <strong>com</strong>plejidad <strong>de</strong>creciente.<br />

“Nunca programe en ‘C’ si pue<strong>de</strong> hacerlo en ‘awk’;<br />

Nunca lo haga en ‘awk’ si ‘sed’ pue<strong>de</strong> manejarlo;<br />

Nunca use ‘sed’ cuando ‘tr’ pue<strong>de</strong> hacer el trabajo;<br />

Nunca invoque ‘tr’ cuando ‘cat’ sea suficiente;<br />

Evite usar ‘cat’ siempre que sea posible.”<br />

En nuestro “episodio anterior” aprendimos las<br />

distintas posibilida<strong>de</strong>s que nos ofrecen cat y tr,<br />

a<strong>de</strong>más <strong>de</strong> cubrir otras herramientas que permiten<br />

automatizar el tratamiento <strong>de</strong> textos, <strong>com</strong>o cut.<br />

Siguiendo este or<strong>de</strong>n, entonces, le toca el turno a<br />

sed. Escrito originalmente por Lee McMahon durante<br />

la década <strong>de</strong>l 70, cuando se <strong>de</strong>sempeñaba en los<br />

Bell Labs, cuna <strong>de</strong>l UNIX original, ha sido portado a<br />

una infinidad <strong>de</strong> plataformas, aunque sigue siendo<br />

un <strong>com</strong>ponente central <strong>de</strong> los clones <strong>de</strong> UNIX,<br />

<strong>com</strong>o GNU/Linux y *BSD. Inclusive, se dice que el<br />

gran Larry Wall, experto en sed, se inspiró en esta<br />

herramienta y en awk -que veremos en nuestra<br />

próxima entrega- al crear Perl, un lenguaje <strong>de</strong><br />

scripting extremadamente po<strong>de</strong>roso y muy popular<br />

en nuestros tiempos, particularmente entre los<br />

sysadmins.<br />

USOS SIMPLES<br />

DE SED<br />

La mayoría <strong>de</strong> los casos en los que suele utilizarse<br />

sed son sencillos, y por lo tanto pue<strong>de</strong>n enten<strong>de</strong>rse<br />

a simple vista. No obstante, este minilenguaje es lo<br />

suficientemente <strong>com</strong>plejo y po<strong>de</strong>roso <strong>com</strong>o para que un<br />

script más largo y <strong>com</strong>plicado sea lo suficientemente<br />

críptico para que sólo un usuario avanzado <strong>de</strong>l mismo<br />

pueda interpretarlo rápidamente. Para colmo, la<br />

documentación más a mano (las páginas <strong>de</strong> man) no<br />

es <strong>de</strong> lo más accesible y <strong>com</strong>pleta. Por lo general, en<br />

el trabajo con sed, <strong>com</strong>o dijo un gran poeta, “se hace<br />

camino al andar”.<br />

El uso más <strong>com</strong>ún <strong>de</strong> sed es equivalente a la<br />

función “Buscar y Reemplazar” que ofrecen muchos<br />

editores <strong>de</strong> texto. La diferencia es que con ellos<br />

hay que hacerlo en forma interactiva, mientras que<br />

sed (<strong>com</strong>o casi todo este tipo <strong>de</strong> herramientas <strong>de</strong><br />

consola en UNIX) está pensado para operar en forma<br />

automatizada. Para hacer un “search & replace” <strong>de</strong><br />

sed, entonces, escribimos:<br />

sed s/ca<strong>de</strong>na_a_reemplazar/nueva_ca<strong>de</strong>na/<br />

archivo_original.txt > archivo_nuevo.txt<br />

La “/” (barra, o en inglés “slash”), que se emplea <strong>com</strong>o<br />

<strong>de</strong>limitador, es solamente una convención, ya que<br />

sed toma al caracter que sigue inmediatamente a la<br />

“s” (<strong>com</strong>ando que or<strong>de</strong>na el reemplazo) <strong>com</strong>o tal. Si<br />

se preten<strong>de</strong> reemplazar una ca<strong>de</strong>na que contenga la

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!