Agregar a una variable existente en un file

Tengo un file de opciones de Grub que quiero modificar a través de un script. Quiero agregar opciones adicionales de cargador de arranque.

El file puede cambiar con el time, por lo que quiero crear algo que se adapte a futuras versiones adjuntándolo a las opciones de cargador de arranque que se envíen con la image.

Por ejemplo, el file del cargador de arranque contiene lo siguiente:

# Set the recordfail timeout GRUB_RECORDFAIL_TIMEOUT=0 # Do not wait on grub prompt GRUB_TIMEOUT=0 # Set the default commandline GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0" # Set the grub console type GRUB_TERMINAL=console GRUB_HIDDEN_TIMEOUT=0.1 

Quiero agregar a la línea GRUB_CMDLINE_LINUX_DEFAULT para que termine como sigue:

 GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0 cgroup_enable=memory swapaccount=1" 

¿Hay alguna manera de que pueda hacer esto con sed o awk? Algo así como "antes de la última cita de la línea que contiene GRUB_CMDLINE_LINUX_DEFAULT Agregar esto".

¡Gracias por adelantado!

Simplemente con sed :

 sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="[^"]*/& cgroup_enable=memory swapaccount=1/' file 
  • [^"]* – relaciona cualquier caracter excepto la comilla doble "
  • & – toda la secuencia combinada (espacio de patrón)