sed es un “editor de textos” para el filtrado y la transformación de textos. Escribo “editor de texto” entre comillas pues en realidad sed no trabaja con cadenas de caracteres sino con “flujos”, la diferencia con los editores de textos clásicos (interactivos) es que sed acepta como entrada estándar un archivo o cualquier otro stream; resultado que es procesado y devuelto a la salida estándar (vea más acerca de stdin, stdout y stderr aquí)
Este es otro de mis pequeños scripts que suelo utilizar y/o adaptar para diferentes circunstancias. Un script sencillo, escrito para Korn Shell pero fácilmente portable a Bash u otro similar.
Para ser ciertos, más que scripting, este ejemplo es una clase de find, un comando tan potente que casi que nos permite “programar” con find
Antes de pasar a ver el código, comento un poco la necesidad que dió origen a este pequeño ejemplar para que tu puedas interpretarlo y, por que no, adaptarlo a tu necesidad.
La cuestión es así, mis aplicaciones y procesos sin logs no tienen razón de ser, todo se loguea, con fines de detectar anomalías, ver errores de software e incluso para hacer auditorias.
Las disputas “religiosas” acerca de los Sistemas Operativos no son sanas (a menos que se hagan bajo un marco de broma, como lo suelo hacer yo en mi desempeño profesional
).
Creo que todos debemos coincidir en que los extremos no son buenos ¿no? por lo tanto, que Gnome tenga portado su editor de textos y tantas otras de sus aplicaciones a Windows no significa ninguna ofensa, ni traición, ni nada de ello. Al contrario, desde mi punto de vista esto es hasta una ventaja, pues muchos usuarios de Windows o Linux (que en sus hogares utilicen un Sistema Operativo y en su trabajo otro) pueden utilizar sus aplicaciones favoritas an uno u otro SO.Entonces… para algunos casos, lo que importa son las aplicaciones, no los Sistemas Operativos.
En mi caso, entre estas aplicaciones que uso en uno y otro SO son Gimp, Dia, MySQL Workbench, Google Chrome, Firefox, etc. Y a este listado ahora se le suma Gedit.
Algo muy poco atractivo para muchos programadores que llegan a C/C++ luego de hacer experiencia en otros lenguajes es la asignación de memoria dinámica (punteros, mallocs y reallocs).
Repasemos un poco de teoría y luego veamos un ejemplo sencillo e indoloro
Leyendo una publicación a la que hago referencia al final del artículo, creí una buena oportunidad para hacer un acercamiento a la familia de lenguajes basados en XML, más específicamente XSL y más específicamente aún XSLT.
XSL, representa lo las siglas Extensible Stylesheet Language (lenguaje de hojas de estilo extensible), la T que agrega XSL (XSLT) correndonde a “Transformations”. Otros lenguajes de la familia son XSL-FO (Formatting Objects) y XPath o XML Path Language (no basado en XML) y utilizado para refererise a porciones o ramas de un documento xml específicando su path.
XSLT nos permite describir la forma en que serán formateados o transformados los archivos codificados en XML para ser mostrados.
Debido a la creciente manipulación de archivos XML, no está de más conocer un poco de XSLT para poder recuperar información de nuestros archivos pero de una forma elegante para su visualización.
Luego de leer el artículo C/C++: Indicador de progreso de La plaga Tux, me vino a la mente ese indicador de progreso que tiene ese aspecto de “barrita” girando sobre su propio eje.
Entonces, tiempo libre mediante, en principio tomé el artículo original y porté el código de C++ a C (nada de otro mundo). Tal artículo me hizo recordar que hay vida más allá del \n recordándome el \r. Pero como una cosa va encadenada a la otra, también me hizo recordar el \b.
Para quienes hasta aquí me leen perdidos o necesitan un refresco de su memoria, les recuerdo que en el formato de impresión se pueden utilizar varias secuencias de control de cursor:
Con esto, ya tenemos todos los fundamentos para que puedas entender los ejemplos.
En la semana una noticia ocupó a la mayoría de los blogs: Go, un nuevo lenguaje de programación. La noticia hubiera pasado desapercibida de no ser porque Go es un nuevo lanzamiento de Google!
Go se promociona a si mismos como un lenguaje:
Esta publicación es pequeña pero muy efectiva, básicamente se trata de un script para buscar en la wikipedia desde la consola, valiéndose simplemente del comando dig.
Debo confesar que esta publicación me trae bastante nostalgia pues me ha llevado a abrir viejos fuentes .bas (de mis archivos) de mis comienzos. Recuerdo aquellas clases de secundaria, monitores en negro y naranja, y una primitiva versión de Gwbasic que utilizabamos simplemente para dibujar en pantalla con la instrucción LINE.
Todo es recuerdo del pasado, de un pasado bastante lejano. No obstante esto, para todos los nostálgicos se ha creado Blassic, un interprete multiplataforma de Basic (desde los Spectrum, Amstrad, etc) hasta las versiones más modernas de Basic como Qbasic.
La compatibilidad del interprete es bastante alta, puede correr fuentes muy antiguos casi sin modificarlos. Además soporta intrucciones que lo transforman en un lenguaje de scripting.
Como si fuera poco Blassic es multiplataforma, està disponible para Linux, Windows y BSD, tanto los fuentes como los binarios e instaladores (para Linux en paquetes deb y rpm).