Entendiendo el comando sed

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 sobre los ficheros
ficheroDatos1, 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.


deckerix


stumbleupondeliciousredditTechnoratiFacebookTwitter

3 comentarios:

  1. http://deckerix.com/blog/entendiendo-el-comando-sed-ii
    y
    http://deckerix.com/blog/entendiendo-el-comando-sed-iii
    te pueden servir

    ResponderEliminar
  2. yep de hecho de alli saque la primera parte Thnks deckrix Xp

    ResponderEliminar
  3. we...no entendi ni madres de lo que escribiste XD

    ResponderEliminar