Saltar la navegación

Comando i (insert)

El comando i (insert) funciona igual que el comando a, la única diferencia está en que el texto se envía a la salida estándar en el momento de la ejecución del comando y no al final del ciclo, con lo que el texto saldrá por delante de la zona de trabajo, lo contrario a lo que sucede con el comando a.

Las dos sintaxis son:

i texto_hasta_final_de_línea
i\
texto_hasta_final_de_línea1\
texto_hasta_final_de_línea2\
...
texto_hasta_final_de_lineaN

Complementando el ejemplo que se puso en el apartado del comando a, vamos a poner delante de la primera línea el carácter {, y además vamos a indentar todas las líneas del flujo de entrada añadiéndo dos espacios al inicio de la línea.

$ sed -e '1i {' -e '$a }' -e 's/^/  /' f
{
uno
dos
tres
}

Observa que el comando s no afecta ni al texto insertado ni al añadido, como se ha explicado, el texto de los comandos i y a no pasa por la zona de trabajo, van directamente a la salida estándar.

Para este ejemplo, el orden de los comandos no es importante, podríamos haberlo hecho de distintas maneras:

$ sed -e '1i {' -e 's/^/  / ; $a }' f
{
  uno
  dos
  tres
}
$ sed '
> 1i {
> s/^/ /
> $a }
> ' f
{
uno
dos
tres
}