使用 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來自動管理它們。

相關內容