スクリプトを介して変更したい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
[^"]*
- 二重引用符を除くすべての文字と一致します。"
&
- 一致する文字列全体(パターンスペース)