Tuesday, March 13, 2012

Trabajo con texto / sed básico

sed permite realizar cualquier tipo edición en ficheros de texto mediante el uso de comandos o pequeños programas "sed".
La verdad es que sed es muy potente, pero aquí sólo voy a comentar dos o tres ejemplos básicos, que en muchas ocasiones me han preguntado...

En general sed acepta que la operación se haga sobre el mismo fichero usando la opción "-i" (inplace). Lo más normal (y lo más seguro) es no usar esta opción y simplemente trabajar usando la entrada/salida estándard y pipes o redirecciones. Pero como estos comandos son para gente que no usa demasiado la linea de comandos, tratan de ser lo más sencillos posible y usarán esta opción.


Sustituir en todo el fichero ejemplo.txt, la palabla 'inicial' por la palabra 'final':
sed s/inicial/final/g -i ejemplo.txt

Sustituir sólo la primera ocurrencia de la palabla 'inicial' por la palabra 'final' en fichero.txt:
sed s/inicial/final/ -i ejemplo.txt

Borrar las lineas que contengan la palabra 'ejemplo' del fichero ejemplo.txt:
sed /ejemplo/d -i ejemplo.txt

Borrar las lineas que empiecen por la palabra 'ejemplo' del fichero ejemplo.txt:
sed /^ejemplo/d -i ejemplo.txt


Borrar las lineas que terminen por la palabra 'ejemplo' del fichero ejemplo.txt:
sed /ejemplo$/d -i ejemplo.txt

Borrar las dos primeras lineas del fichero.txt
sed '1,2 d' -i fichero.txt

Borrar la última linea de fichero.txt
sed  '$ d'  -i fichero.txt

Borrar las líneas vacias de fichero.txt
sed  '/^$/ d'  -i fichero.txt

Mostrar las tres primeras lineas de fichero.txt
sed  -n '1,3 p' fichero.txt

Mostrar las lineas 4,5,6 de fichero.txt
sed  -n '4,6 p' fichero.txt

Más info:
man sed
info sed


No comments: