追加到文件中的现有变量

追加到文件中的现有变量

我有一个 Grub 选项文件,想通过脚本修改。我想添加额外的引导加载程序选项。

该文件可能会随着时间的推移而改变,因此我想通过附加到映像附带的任何引导加载程序选项来创建适应未来版本的文件。

例如,引导加载程序文件包含以下内容:

# 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

我想附加到 GRUB_CMDLINE_LINUX_DEFAULT 行,以便它最终像:

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

有没有办法用 sed 或 awk 来做到这一点?类似于“在包含 GRUB_CMDLINE_LINUX_DEFAULT 的行的最后一个引号之前附加此内容”。

提前致谢!

答案1

简单地与sed:

sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="[^"]*/& cgroup_enable=memory swapaccount=1/' file
  • [^"]*- 匹配除双引号之外的任何字符"
  • &- 整个匹配的字符串(模式空间)

相关内容