systemadmin.es » Utilidades » Aplicar substituciones con sed directamente al fichero

Aplicar substituciones con sed directamente al fichero

sed es una gran herramienta para aplicar filtrar y aplicar cambios en un texto. Vamos a ver como usar sed para aplicar cambios en un fichero sin usar ficheros temporales.

Supongamos el siguiente ejemplo de texto:

# for i in www.{a..z}.com; do echo $i >> /tmp/ejemplo; done
# cat /tmp/ejemplo
www.a.com
www.b.com
www.c.com
www.d.com
www.e.com
www.f.com
www.g.com
www.h.com
www.i.com
www.j.com
www.k.com
www.l.com
www.m.com
www.n.com
www.o.com
www.p.com
www.q.com
www.r.com
www.s.com
www.t.com
www.u.com
www.v.com
www.w.com
www.x.com
www.y.com
www.z.com

Si deseamos modificar el “www” inicial por “ftp” lo podemos hacer con sed mediante la siguiente expresión: s/www/ftp/

La s indica que haga una substitución de la primera parte entre barras por la segunda. En este caso, substituimos “www” por “ftp“.

Para aplicar los cambios directamente al fichero sin crear archivos temporales lo debemos hacer mediante el parámetro -i:

# sed -i 's/www/ftp/' /tmp/ejemplo
# cat /tmp/ejemplo
ftp.a.com
ftp.b.com
ftp.c.com
ftp.d.com
ftp.e.com
ftp.f.com
ftp.g.com
ftp.h.com
ftp.i.com
ftp.j.com
ftp.k.com
ftp.l.com
ftp.m.com
ftp.n.com
ftp.o.com
ftp.p.com
ftp.q.com
ftp.r.com
ftp.s.com
ftp.t.com
ftp.u.com
ftp.v.com
ftp.w.com
ftp.x.com
ftp.y.com
ftp.z.com

Relacionados

Imprimir Imprimir

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>