![使用 sed 删除代码行上的“(双引号)同时将它们保留在 vimrc 中的真实注释上](https://linux22.com/image/726984/%E4%BD%BF%E7%94%A8%20sed%20%E5%88%A0%E9%99%A4%E4%BB%A3%E7%A0%81%E8%A1%8C%E4%B8%8A%E7%9A%84%E2%80%9C%EF%BC%88%E5%8F%8C%E5%BC%95%E5%8F%B7%EF%BC%89%E5%90%8C%E6%97%B6%E5%B0%86%E5%AE%83%E4%BB%AC%E4%BF%9D%E7%95%99%E5%9C%A8%20vimrc%20%E4%B8%AD%E7%9A%84%E7%9C%9F%E5%AE%9E%E6%B3%A8%E9%87%8A%E4%B8%8A%20.png)
我是最后学习如何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来自动管理它们。