Guía rápida del comando sed

23 05 2011

El comando sed se utiliza para realizar sustituciones en ficheros de manera rápida:# sed -opción s/EXPRESIÓN/sustitución/opción archivo.txt
Sustituir todos las palabras que contienen lisa por Lisa y casa por Casa, se pueden pasar varios parámetros a la vez con la opción “-e” o con “;”:# sed -e 's/lisa/Lisa/' -e 's/casa/Casa/' archivo.txt
# sed -e 's/lisa/Lisa/'; 's/casa/Casa/' archivo.txt

También se puede crear un script, un archivo con el contenido del tipo:"s/EXPRESIÓN/sustitución/opción"que recogerá sed así:# sed -f script.txt archivo.txt

Como opciones, se pueden pasar las siguientes variables:

g – Aplicar los cambios globalmente
p – Muestra las líneas que contienen el patrón a sustituir
(número) – Sustituye el patrón sólo las veces que se indiquen
w – Escribe las líneas sustituidas a un fichero especificado
I – Ignora mayúsculas y minúsculas

Reemplazar las cinco primeras coincidencias:# sed s/hola/Hola/5 archivo.txt

Sustituir entre la línea 3 y 10 un patrón dado:# sed '3,10s/hola/Hola/' archivo.txt

Sustituir el patrón en todas las líneas menos la primera:# sed '!1s/hola/Hola/' archivo.txt

Sustutir la última línea:# sed '$s/hola/Hola/' archivo.txt

Sustituir y/o reemplazar el mismo archivo: # sed -ie 's/hola/Hola/g' archivo.txt

Sustituir varios archivos recursivamente, para ello hay que utilizar el siguiente script:
# /bin/bash
find . -type f -name '*' -print |
while read filename
do
(
sed -i -e 's/TEXTOVIEJO/TEXTONUEVO/i;' $filename
)
done

Advertisements

Actions

Information

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




%d bloggers like this: