fbpx Comando sed en Linux: Reemplazar, Editar y Borrar Texto | Certificação Linux

Sed en Linux: Editar, Reemplazar y Transformar Texto

📅 01/01/2019 ⏱ 4 min ✍️ Uira Ribeiro
Linuxcomandos
Sed en Linux: Editar, Reemplazar y Transformar Texto
Exam Pass App — mais de 7.000 questões LPI, offline, em 5 idiomas, disponível no Android e na App Store
Disponible en
Google Play
Disponible en
App Store

El comando sed en Linux es un editor de textos simple utilizado para realizar pequeñas transformaciones en el contenido de los archivos. Utiliza el patrón POSIX ERE para expresiones regulares.

El sed recibe un texto de uno o más archivos pasados como argumento en la línea de comandos y lo transforma enviando la modificación a la salida estándar STDOUT (monitor de video).

Si queremos que el sed realmente altere el contenido del archivo es necesario utilizar el redireccionador mayor-que ">" hacia otro archivo cualquiera.

Otra posibilidad es usar la opción "-iSUFIJO" que permite editar directamente el archivo original y guardar una copia de seguridad con el nombre del archivo seguido del SUFIJO indicado.

Las opciones del sed son:

  • -iSUXIFO     altera el archivo
  • -e                 imprime en pantalla sin alterar el archivo
  • -n                 suprime la salida, muestra solo el resultado del comando
  • -f archivo    Lee un script con expresiones del sed

Los comandos que el sed acepta son:

  • s reemplaza un trecho de texto por otro
  • ! invierte la lógica del comando
  • ; separador de comandos
  • | separador de strings
  • d al final elimina
  • p al final imprime
  • g al final (como se usa d y p) altera todas las ocurrencias

Para reemplazar ocurrencias por otro texto, se puede utilizar la opción "s" del sed. Las barras normales "/" se usan para separar el texto a buscar y el texto nuevo. En este caso, el reemplazo se envía a la salida estándar STDOUT y el archivo permanece intacto:

$ sed "s/velho/novo/"  arquivo

Para reemplazar el nombre uira por el nombre carla en el archivo /etc/passwd e imprimir en la salida estándar:

$ sed ‘s/uira/carla/’ /etc/passwd

En este ejemplo a continuación la ocurrencia /usr/local/bin es alterada para /usr/bin y grabada en textonuevo.txt sin alterar el archivo original. El uso de la barra invertida fue necesario para indicar que el caracter "'/" de la ruta no es el separador de reemplazo del sed:

$ sed ‘s/\/usr\/local\/bin/\/usr\/bin/’ texto.txt > textonovo.txt 

Puedes optar por usar la opción –i, de manera que el sed alterará el archivo y mantendrá un backup del archivo original en archivo.bkp

$ sed –i.bkp ‘s/\/usr\/local\/bin/\/usr\/bin/’ arquivo

Coloca la palabra "comprar" al inicio de cada línea:

$ sed 's/^/comprar /' supermercadocomprar arrozcomprar feijão
comprar carnecomprar batatacomprar alfacecomprar tomatecomprar arroz

Imprime únicamente la tercera línea del archivo supermercado:

$ sed -n '3p' supermercado carne

Imprime desde la tercera hasta la quinta línea del archivo supermercado:

$ sed -n '3,5p' supermercado carnebatataalface

El comando "d" puede ser usado para eliminar todas las líneas que contienen la palabra carne y crear una copia:

$ sed -i.bkp '/carne/d' supermercado $ cat supermercadoarrozfeijãobatataalfacetomatearroz

Reemplaza todas las ocurrencias de arroz y batata por couve-flor:

$ sed 's/arroz\|batata/couve-flor/' supermercadocouve-florfeijãocouve-floralfacetomatecouve-flor

Elimina todas las líneas en blanco, alterando el archivo:

$ sed -i '/^$/d' arquivo.txt

Elimina todas las TAGs HTML del archivo:

$ sed 's/<[^>]*>//g' arquivo.txt

Un conjunto de expresiones del sed puede ser grabado en un archivo de texto para ser leído por él como un interpretador con la opción -f. En este caso, varios comandos del sed fueron grabados en un archivo llamado expresiones:

$ cat expressoess/carla/uira/s/<p>/<p align=center>/
$ sed -f expressoes arquivo.txt

Aprende mucho más sobre Linux en nuestro curso en línea. Puedes realizar la inscripción aquí. Si ya tienes una cuenta, o quieres crear una, simplemente ingresa o crea tu usuario aquí.

¿Te gustó? Comparte

Uira Ribeiro

Prof. Uirá Ribeiro

Chair do Board do Linux Professional Institute

Después de años viendo profesionales perder horas en tareas simples por no conocer las herramientas correctas de Linux, decidí enseñar.
Hoy soy autor de la mayoría de los Materiales de Aprendizaje oficiales de la LPI y mentor de más de 14,000 alumnos certificados.

Conoce mi historia completa →

Eso fue solo una pieza. El curso enseña el camino completo — desde tu primer comando hasta el día del examen.

Certificação Linux — a plataforma líder em certificações Linux no Brasil
WhatsApp