Comando sed en Linux con ejemplos

El comando sed en Linux es un potente editor de secuencias que le permite realizar transformaciones de texto básicas en una secuencia de entrada (un archivo o entrada de una canalización). Se utiliza ampliamente para buscar, encontrar y reemplazar, insertar y eliminar texto dentro de archivos. A diferencia de los editores de texto simples, sed procesa datos en una canalización y es especialmente útil para automatizar manipulaciones de texto en scripts de shell.

Las características clave de sed incluyen la capacidad de:

  • Sustituir texto dentro de un archivo usando expresiones regulares.
  • Elimina líneas basadas en patrones específicos.
  • Insertar o agregar texto a líneas específicas.
  • Transforme o convierta texto basándose en patrones complejos.

Esta guía proporcionará ejemplos para demostrar el uso práctico del comando sed en Linux, mostrando cómo se puede utilizar para diversas tareas de procesamiento de texto.

Sintaxis clave y opciones del comando Sed

Antes de profundizar en los ejemplos, es vital comprender la sintaxis principal del comando sed:

sed [OPTION]... {script-only-if-no-other-script} [input-file]...

A continuación se muestran algunas opciones de uso común:

  • -e: Permite el uso de múltiples comandos.
  • -n: suprime el comportamiento predeterminado al imprimir cada línea.
  • -i: edita archivos en su lugar (tenga cuidado ya que modifica el archivo original).

Ejemplos básicos del comando Sed en Linux

Sustitución de texto básico

Uno de los usos más comunes de sed es reemplazar texto.

echo "Welcome to Linux" | sed 's/Linux/Unix/'

Producción:

Welcome to Unix

Sustitución global

De manera predeterminada, sed reemplaza la primera ocurrencia de una línea. Para reemplazar todas las ocurrencias, use el indicador 'g'.

echo "Apples are better than apples" | sed 's/apples/oranges/g'

Producción:

Apples are better than oranges

Eliminación de línea

sed también puede eliminar líneas según un patrón específico.

echo -e "apple\norange\nbanana" | sed '/orange/d'

Producción:

apple
banana

Insertar y agregar texto

Puede introducir nuevas líneas de texto antes o después de una coincidencia de patrón.

echo "Hello" | sed 'i\Good Morning'

Producción:

Good Morning
Hello

Cambiar caso de texto

Con sed, puedes manipular el uso de mayúsculas y minúsculas mediante la función y. Veamos un ejemplo de conversión de minúsculas a mayúsculas:

echo "hello world" | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'

Producción:

HELLO WORLD

Uso avanzado del comando Sed en Linux

Sustitución de texto multipatrón

Para múltiples patrones, puede emplear -e para encadenar varios comandos de sustitución.

echo "Welcome to Linux. I love Linux." | sed -e 's/Linux/Unix/' -e 's/love/adore/'

Producción:

Welcome to Unix. I adore Linux.

Reemplazo de texto condicional

Con sed, es posible reemplazar texto en función de ciertas condiciones utilizando direcciones.

echo -e "apple\nbanana\ncherry" | sed '/banana/s/$/ - favorite fruit/'

Producción:

apple
banana - favorite fruit
cherry

Usando Sed con expresiones regulares

Aproveche el poder de las expresiones regulares para unir patrones complejos.

echo "Price is $100" | sed 's/$[0-9]*/& (USD)/'

Producción:

Price is $100 (USD)

Referencias anteriores para reemplazos complejos

Las referencias anteriores se pueden utilizar para hacer referencia a partes del patrón coincidente.

echo "The white cat and black dog" | sed 's/\(white\|black\) \(cat\|dog\)/\2 \1/'

Producción:

The cat white and dog black

Edición in situ con la opción -i

Una de las poderosas características de sed es la capacidad de editar archivos directamente. Esto se puede lograr usando la opción -i, pero siempre haga una copia de seguridad del archivo original antes de realizar modificaciones directas.

echo "Original text" > temp.txt
sed -i 's/Original/Modified/' temp.txt
cat temp.txt

Producción:

Modified text

Conclusión

Comprender y dominar el comando sed puede mejorar significativamente su capacidad para manipular y procesar archivos de texto en Linux. Al practicar los ejemplos proporcionados, puede aprender cómo manejar de manera eficiente tareas comunes de procesamiento de texto, automatizar trabajos de edición repetitivos e incorporar sed en su flujo de trabajo de secuencias de comandos. Experimentar periódicamente con diferentes opciones y comandos de sed profundizará su conocimiento y le permitirá aprovechar todo su potencial. Disfrute de la versatilidad y potencia que sed aporta a sus tareas de procesamiento de textos de Linux.

Joshua James
Sígueme
Últimas entradas de Joshua James (ver todo)

Deja un comentario