我想更新远程linux服务器上的文件。为此,我正在使用sed命令。因为我必须先搜索该行然后更新值
我的文件包含以下内容:
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="ankur"
GRUB_DISABLE_RECOVERY="true"
所以使用sed命令我必须在双qoutes中追加sharma 意味着执行行之后将是grub_cmdline_linux =“ ankur sharma”
我已经尝试过此命令
sed -i 's+\(GRUB_CMDLINE_LINUX.*\)+\1 sharma+g' '/etc/default/grub.bak'
此命令sharma将附加在行的末尾,但应附加在双qoutes内
预期输出:
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="ankur sharma"
GRUB_DISABLE_RECOVERY="true"
答案 0 :(得分:1)
不是吗
sed '/^GRUB_CMDLINE_LINUX=/s/"$/ sharma"/' /etc/default/grub.bak
?
答案 1 :(得分:0)
$ sed 's/GRUB_CMDLINE_LINUX="[^"]*/& sharma/' file
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="ankur sharma"
GRUB_DISABLE_RECOVERY="true"