使用 sed 删除代码行上的“(双引号)同时将它们保留在 vimrc 中的真实注释上

使用 sed 删除代码行上的“(双引号)同时将它们保留在 vimrc 中的真实注释上

我是最后学习如何sed在安装 Ubuntu(服务器/桌面)时使用编辑配置。经过一番苦苦思索,寻找正确的语法后,不是删除"(注释双引号,并准确删除后面有空格(真实注释)),而不是有潜在代码可以切换的行(空格或由于我通过在 /etc/vim/vimrc 文件中设置空格(用于缩进代码行)来解决这个问题,我找到了如何使用以下命令使它正常工作:

$ sudo sed -i.orig '/^\" [a-zA-Z]\|^"set compatible\|^\" let g:skip_defaults_vim = 1b/! s/^\"//' /etc/vim/vimrc

无论是大师还是学徒,请告诉我是否可以做得更好(更紧密/更干净/等等)?

使用示例awk得到相同的结果吗?

谢谢。

答案1

\1在更改目标中使用编号捕获变量,如下所示s/^([[:space:]]*)"[[:space:]]*(let .*)/\1\2/

还可以使用sed 'your change;another change' file > file.tmp$$ && mv file.tmp$$ file

这是比以下方式更“安全”且更便携的就地更改文件的方式:sed -i ...

对于~/.vimrc~ 下的点文件和 /etc 下的 conf 文件,使用 git 将它们保存在本地。etckeeper 非常适合使用 git 进行 /etc 管理。

有些人用augeas它来编辑conf文件,甚至用chef/puppet来自动管理它们。

相关内容