我对 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