sed

Editor de flujo de datos.

Sintaxis:
$ sed [OPCIONES] 'EXPRESION' NOMBRE_ARCHVIOS
Opciones:
  • -i[ext] : Reemplaza el contenido del fichero.
  • -E : Expresiones Regulares Extendidas.

Expresiones:

  • Sustitución: 'S/PATRÓN/REEMPLAZO/MODIFICADOR'
    • MODIFICADORES:
      • g = todas
      • i = no distingue.
  • Borrado : '/PATRÓN/d'

Caso de ejemplo:
$ cat empresa.txt

La empresa TAL TAL le desea un prospero 2017.

Le deseamos felicidad y muchos éxitos para el próximo 2017.

Esperamos que este 2017 se un féliz 2017 !!!
Sustitución:

Queremos sustituir el 2017 por el 2018 .

$ sed 's/2017/2018/' empresa.txt

La empresa TAL TAL le desea un prospero 2018.

Le deseamos felicidad y muchos éxitos para el próximo 2018.

Esperamos que este 2018 se un féliz 2017 !!!

Lo sustituye todo menos la última línea la cual tiene 2 coincidencias. Por defecto solo sustituye la primera coincidencia de cada línea.

Deberemos indicar un modificador en este caso g el cual indica modificar todas...

$ sed 's/2017/2018/g' empresa.txt

La empresa TAL TAL le desea un prospero 2018.

Le deseamos felicidad y muchos éxitos para el próximo 2018.

Esperamos que este 2018 se un féliz 2018 !!!
Borrado:

Para eliminar las líneas vacías ...

$ sed '/^$/d' empresa.txt

La empresa TAL TAL le desea un prospero 2017.
Le desamso felicidad y muchos éxitos para el próximo 2017.
Esperamos que este 2017 se un féliz 2017 !!!

Opciones de modificación de archivo

Los casos anteriores eran solo de visualización si queremos que se modifique el archivo deberemos incluir la opción-i.

$ sed -i 's/2017/2018/g' empresa.txt
$ cat empresa.txt

La empresa TAL TAL le desea un prospero 2018.

Le desamso felicidad y muchos éxitos para el próximo 2018.

Esperamos que este 2018 se un féliz 2018 !!!

Ahora hemos modificado el archivo.

Esto sustituye los datos como modo de seguridad podemos indicar que genere una copia de seguridad insertando una extensión...

$ sed -i.original 's/2018/2019/g' empresa.txt
$ ls
empresa.txt.original  empresa.txt

tendremos una copia de seguridad con la extensión indicada en este caso .original.

Activar Expresiones Regulares Extendidas

Se le indica la opción -E como se hace con grep .

$ sed -E xxxxxxxxxxxxxxxxxxxxxx

results matching ""

    No results matching ""