Entendiendo el comando sed I

Friday, February 6, 2009 21:21
Posted in category Linux

sed es un editor no interactivo. Es útil si se va a realizar varias veces modificaciones sobre uno o varios ficheros.

Cuando digo que sed es un editor no interactivo me refiero a que los cambios no se realizan sobre el fichero en sí, si no que los cambios aparecen en la salida estandar. Para entender mejor esto, imaginamos que con nuestro editor de textos favorito borramos la línea 3 de un fichero y posteriormente borramos la línea 15 actual. Habremos borrado las líneas 3 y 16 del fichero origen.
Esto se podría haber evitado habiendo borrado primero la 16 y luego la 3.

Con sed, la numeración de las líneas no cambia al borrar una, ya que estas se numeran inicialmente. Podríamos haber resuelto el problema anterior de la siguiente manera:

	sed -e '3d' -e '15d' fichero_datos

sed aplica todos los comandos de edición a cada línea de texto de un fichero. Empieza aplicando todos los comandos a la primera línea, luego todos a la segunda, y así sucesivamente.

	sed -f fichero 
	Toma los comandos de edición del fichero que sigue al flag -f
	sed -e comando
	Ejecuta el comando
	sed -e comando -e comando  
	Ejecuta los comandos indicados
	sed -f ficheroDeComandos ficheroDatos1 ficherosDatos2 
	Ejecuta los comandos que se encuentran guardados en el fichero 
	ficheroDeComandos</em> sobre los ficheros
	ficheroDatos1</em>, <em>ficheroDatos2, etc...

Si no se nombran los ficheros, sed filtra la entrada estándar. Si se nombran los ficheros, sed manda a la salida estándar el resultado de aplicar los comandos sobre las líneas de dichos ficheros.

You can leave a response, or trackback from your own site.

Leave a Reply