ファイルの既存の変数に追加

ファイルの既存の変数に追加

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

関連情報