Acrescentar a uma variável existente em um arquivo

3

Eu tenho um arquivo de opções do Grub que eu quero modificar via script. Eu quero adicionar opções adicionais de carregador de inicialização.

O arquivo pode mudar com o tempo, portanto, quero criar algo que se adapte a versões futuras anexando a qualquer uma das opções do carregador de inicialização fornecidas com a imagem.

Por exemplo, o arquivo do carregador de inicialização contém o seguinte:

# 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

Quero anexar à linha GRUB_CMDLINE_LINUX_DEFAULT para que termine como:

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

Existe uma maneira de fazer isso com sed ou awk? Algo como "antes da última citação da linha que contém GRUB_CMDLINE_LINUX_DEFAULT anexar isso".

Obrigado antecipadamente!

    
por otakumike 04.12.2017 / 10:07

1 resposta

3

Simplesmente com sed :

sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="[^"]*/& cgroup_enable=memory swapaccount=1/' file
  • [^"]* - corresponde a qualquer caractere, exceto as aspas duplas "
  • & - a string combinada inteira (espaço de padrão)
por 04.12.2017 / 10:21