Buscar y reemplazar un texto desde la terminal

Buscar y reemplazar un texto desde la terminal

Uno podría suponer que una tarea de buscar una cadena de texto y reemplazarla desde un programa editor sería una tarea trivial, pero hay veces que no.

El otro día tuve la necesidad de reemplazar una cadena por otra en un archivo de texto simple y llano, nada fuera de lo ordinario, para esto estaba utilizando el editor Atom y según la búsqueda de la cadena tenía un total de un poco más de mil coincidencias, pulsé el botón Replace All  y nada pasó !!! Dejé pasar un poco de tiempo y nada, para colmo si intentaba “apresurar” el proceso recibía como respuesta un mesaje de Editor is not responding.

Editor is not responding - Reemplazar el texto de un archivo desde la terminal
Al parece el editor estaba demasiado ocupado para atenderme.

Intenté bajar la apuesta usando un editor más simple, lo intenté con gedit y el resultado fue muy similar. Al menos Atom presentaba mejor el archivo y podía trabajar más a gusto con el archivo, pero al llegar al momento de buscar y reemplazar era jugar un albur. A veces lo lograba si presionaba el botón Keep Waiting , pero otras veces no.

Mi computadora tiene recursos más que suficientes para completar la tarea, me parecía imposible que una simple búsqueda y sustitución de una cadena de texto representara tal reto. Además si iba a hacer esto de manera rutinaria tenía que encontrar una solución más eficiente.

Domina la terminal, domina el mundo.

Al principio pensé en utilizar un editor más ligero pero no puede haber nada más ligero que la terminal y supuse que debería de existir algún comando que hiciera la tarea.

Para buscar y reemplazar un texto desde la terminal use el comando sed (stream editor for filtering and transforming text) que con una instrucción muy sencilla hizo el trabajo en menos de un segundo !!!

sed -i 's/original/nuevo/g' archivo.txt
Donde:

  • -i (in place) Es decir, el resultado lo guarda en el archivo original.
  • s (substitute) Busca una cadena y lo que encuentra lo reemplaza por otra.
  • original Es la cadena de texto que va a buscar
  • nuevo Es la cadena de texto que va a sustituir a original
  • g Quiere decir global, o sea que hará el cambio en todas las coincidencias que encuentre en el archivo
  • Y por último archivo.txt es el nombre del archivo sobre el cual va a trabajar.

Y este es tan solo un ejemplo de lo que puede hacer sed, tiene una gran variedad de opciones incluyendo el uso de expresiones regulares y lo mejor es que si es necesario, se puede programar en bash para automatizar tareas que de otro modo se tardarían una eternidad.

Guardaré este comando en mi caja de herramientas linuxeras hasta que lo vuelva a necesitar, por el momento fue de gran ayuda.

El método vi (actualización)

Poco tiempo después de publicar este artículo el buen amigo Rodolfo Zola hizo un comentario en el que me recomienda el uso de vi que también es editor de textos de terminal. Curiosamente la instrucción es muy similar a la de sed.

buscar y reemplazar con vim
Igual de rápido que el comando sed.

En el ejemplo pueden ver que sustituye la cadena em por am en un texto Lorem Ipsum de buen tamaño y lo hizo instantáneamente.

Copiar un ISO a una memoria USB con isousb

isousb para copiar iso a una memoria usb

Para instalar Manjaro Linux es necesario copiar el archivo ISO a un CD o generar una memoria USB de arranque copiando el ISO al dispositivo.

Haciendo los preparativos para el último FLISOL me encontré con Isousb , una herramienta minimalista que se mete en muy pocos problemas al copiar un archivo ISO a un dispositivo USB.

Instalación

Isousb ya forma parte de los paquetes oficiales de Manjaro, supongo que también se podrá conseguir para otras distribuciones, para instalarlo solo es necesario.

sudo pacman -S isousb
Y eso es todo.

Tan fácil como la tabla del 1

Utilizar Isousb es una tarea de preescolar, al iniciar el programa lo primero que hace es preguntar la localización del archivo ISO y enseguida la elección del dispositivo USB que quieres como destino, más simple ¡Imposible!.

Seleccionar el dispositivo usb de destino
Seleccionar el dispositivo usb de destino.

Si quisiera ponerle un pero al programa es que me gustaría que advirtiera que el contenido de la memoria será destruido y una comprobación del tamaño del ISO vs la capacidad de la memoria. De esto último hay una advertencia en la pantalla, pero la comprobación se la deja al usuario.

Con la terminal

Claro que sigue siendo válido el método con la terminal usando el comando dd

dd bs=4M if=/ruta/a/manjaro.iso of=/dev/sd[letra de la unidad]
Los dos métodos son útiles al momento de generar una usb de arranque, solo que siento que por la facilidad de uso y su interfaz gráfica isousb será mi favorito al realizar esta tarea.

Mañana es el FLISOL 2015

flisol 2015 banner

No hay fecha que no llegue ni plazo que no se cumpla y mañana es el FLISOL !!!

Póster del FLISOL 2015

Con el objetivo de promover y difundir el uso de Software Libre, el próximo sábado 25 de Abril de 2015 se llevará a cabo el Festival Latinoamericano de Instalación de Software Libre en Plaza Cuatro Caminos, atrio principal, en Torreón, Coahuila, México.

El Festival Latinoamericano de Instalación de Software Libre (FLISOL) es el evento internacional más importante y el más grande a nivel mundial de instalación de Software Libre; el cual es realizado gratuitamente, a los asistentes que participen llevando su equipo de cómputo, se les instala software libre en los mismos. El evento FLISOL lo ha venido realizando GULAG desde el año de 2006 ininterrumpidamente con el apoyo de diversos patrocinadores. El festival ha tomado tanta relevancia a nivel internacional que en ciudades de países NO latinoamericanos como Portugal, Estados Unidos y Canadá se han unido a su realización.

Distribuciones ofrecidas:

  • Debian
  • Guadalinex
  • Manjaro
  • Mint
  • Trisquel
  • Ubuntu

Fecha Lugar y hora

Fecha: Sábado 25 de Abril de 2015. Lugar: Plaza Cuatro Caminos, Atrio principal. Blvd. Independencia #1300 Ote, Col. Navarro Torreón, Coahuila, México. Horario: De las 11 hasta las 18 horas.

Actividades

  • Charlas
  • Festival de instalación
  • Taller de uso de GitHub
  • Contacto con la comunidad de Software Libre local.

ATENCIÓN: Se recomienda que antes de asistir al evento haga un RESPALDO DE LA INFORMACIÓN IMPORTANTE y defragmentar el disco duro.

Programa

  • 11:00 Bienvenida
  • 11:00 AM Documentación Libre para el Software Libre por Osvaldo Salazar (Chico)
  • 12:00 PM Datos Abiertos y el Software Libre en el Gobierno por Guillermo Valdés (guivaloz)
  • 01:00 PM 10 Soluciones de Software Gratuito para Negocios Emprendedores por Antonio Gurza (ZK)
  • 02:00 PM a 6:00 PM Installfest: Instalación de software libre en las computadoras que lleven los asistentes.

Evento dirigido a todo tipo de público: estudiantes, académicos, empresarios, trabajadores, funcionarios públicos, entusiastas y aun personas que no poseen mucho conocimiento informático.