Saltar la navegación

Comando g (get hold space)

El comando g (get hold space) reemplaza la zona de trabajo por el contenido de la zona auxiliar.

Como ejemplo, vamos a convertir la primera línea del flujo de entrada en la última:

$ sed -n '1h ; 2,$p ; $g ; $p' f
dos
tres
uno

Lo que se ha hecho es lo siguiente:

  1. Desactivamos el autoprint, es decir, la visualización de las líneas al final de cada ciclo. Para ser más exactos, hacemos que la zona de trabajo no se envíe a la salida estándar cuando el ciclo termina. (-n)
  2. Solo la primera línea se traslada al área auxiliar. (1h)
  3. Todas las líneas menos la primera las visualizamos. (2,$p)
  4. Cuando estemos trabajando con la última línea, recuperamos la zona auxiliar sobre la zona de trabajo y visualizamos esta última. ($g ; $p)

Otra forma de hacer lo mismo, jugando con el ámbito y el agrupamiento de comandos, sería lo siguiente:

$ sed -n '1h ; 2,$p ; ${g ; p}' f
dos
tres
uno