El comando sed en Linux es una herramienta muy potente utilizada principalmente para procesar texto. Su nombre proviene de «stream editor», lo que significa editor de flujo. Aquí te dejo algunas de sus funciones principales:

  1. Reemplazo de texto: Puedes usar sed para buscar un patrón de texto específico y reemplazarlo con otro. Esto es útil para modificar archivos de configuración o datos.
  2. Filtrado de contenido: Puede eliminar líneas específicas de un archivo o mostrar solo las que cumplen con un patrón determinado.
  3. Edición en línea: Con la opción -i, puedes editar archivos directamente sin necesidad de crear uno nuevo.
  4. Scripts de edición: Puedes escribir scripts más largos de sed para realizar múltiples tareas de edición en un flujo de texto.

Es una herramienta extremadamente flexible y poderosa para manipular texto en scripts de shell, programas de automatización, y más.

Aquí tienes una mini guía para el uso de sed en Linux, enfocándonos en el reemplazo de texto y el filtrado de contenido:

Reemplazo de Texto con sed

Para reemplazar texto, el formato básico del comando es:

sed 's/patrón_a_buscar/reemplazo/' archivo.txt

Ejemplo:
Supongamos que tienes un archivo llamado ejemplo.txt con el siguiente contenido:

Hola mundo
Hola universo
Adiós mundo

Y quieres reemplazar «mundo» por «planeta». Ejecutarías:

sed 's/mundo/planeta/' ejemplo.txt

Esto imprimirá en la consola el texto con los reemplazos, pero no modificará el archivo original. Si quieres cambiar el archivo original, usarías la opción -i:

sed -i 's/mundo/planeta/' ejemplo.txt

Filtrado de Contenido con sed

Para filtrar contenido, puedes usar expresiones que coincidan con las líneas que quieres eliminar o mostrar.

Eliminar líneas:
Para eliminar líneas que coincidan con un patrón, usas:

sed '/patrón_a_eliminar/d' archivo.txt

Ejemplo:
Si deseas eliminar todas las líneas que contienen «Hola» del mismo archivo ejemplo.txt, ejecutarías:

sed '/Hola/d' ejemplo.txt

Mostrar solo líneas específicas:
Para esto, sed no es la herramienta más eficiente, pero puedes combinarlo con grep:

grep 'patrón_a_mostrar' archivo.txt

Ejemplo:
Para mostrar solo las líneas que contienen «Adiós»:

grep 'Adiós' ejemplo.txt

Consejos adicionales:

  • Usa sed -i.bak 's/patrón/reemplazo/' archivo.txt para guardar una copia del archivo original con la extensión .bak antes de modificarlo.
  • Para patrones más complejos, necesitarás aprender sobre expresiones regulares (regex), que son las que utiliza sed para identificar los patrones de texto.

Espero que esta mini guía te sea útil para empezar a trabajar con sed.
Si quieres una mini-guía de expresiones regulares para búsqueda de cadenas/string en texto tienes este post : Mini Guía Expresiones regulares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies