Entendiendo el comando sed I
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.