/boot/grub/grub.cfg
每次 grub 更新时,我都尝试在脚本中使用 sed 来修改我的 grub 配置文件()中的一行。我希望替换以下行:
menuentry "Kali GNU/Linux"
有了这个:
'menuentry "Kali GNU/Linux" --class kali'
/boot/grub/grub.cfg 中的行如下:
menuentry "Kali GNU/Linux" --class gnu-linux --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-5.14.0-kali2-amd64--7afb9c25-9d47-4ce4-a3dd-635aa0b04d7a'
基本上,我想要做的是添加行--class kali
. 我无法替换gnu-linux
或os
替换,kali
因为这些词多次出现。
我使用的脚本如下:
TARGET_STRING='menuentry "Kali GNU/Linux"'
NEW_STRING='menuentry "Kali GNU/Linux" --class kali'
sudo sed -i "s/$TARGET_STRING/$NEW_STRING/g" /boot/grub/grub.cfg
这无法正常工作,出现以下错误:
sed: -e expression #1, char 32: unknown option to `s'
我在网上找到了在这里替换包含空格的字符串并在此处替换包含双引号的字符串的解决方案,但当字符串同时包含两者时则不然。
有人可以帮我吗?
注意:我正在使用GNU sed 4.7