在 Linux 终端中使用 sed 命令用注释替换配置文件

在 Linux 终端中使用 sed 命令用注释替换配置文件

我对 sed 了解不多。在 /etc/nanorc 中,我得到了一堆带有注释的设置(例如:)。

#bind ^K setting 1
#bind ^F whereis all
#bind ^J setting 3

因此,我只想注释掉此设置以在 nano 中启用键 CTRL+D:

#bind ^F whereis all

我尝试了这个但似乎不起作用:

sed -ri "s/#bind ^F whereis all.*$/\bind ^F whereis all/" /etc/nanorc

说真的,我不知道该怎么办。

答案1

使用简单的文本编辑器注释掉一行要容易得多,但无论如何......

您的命令不起作用,因为^是一个特殊的正则表达式字符,表示“行首”(不在 和 之间时[]。因此您的正则表达式永远不会匹配,因为您期望行首位于行的中间。此外,您转义了b替换中的字符,这是不必要的。请改用此命令:

sed -ri "s/#bind \\^F whereis all.*$/bind ^F whereis all/" /etc/nanorc

相关内容