Использование sed для удаления "(двойных кавычек) на строках кода, оставляя их на реальных комментариях в vimrc [closed]

Я наконец-то узнаю, как использовать sed для редактирования конфигураций при установке Ubuntu(Server/Desktop). После долгих скрежета зубов и поисков подходящего синтаксиса для not удалите "(комментарий двойные кавычки с точным пробелом one после (реальные комментарии)),В отличие от строк, которые имеют потенциальный код для переключения (zero пустых пробелов или two пустых пробелов для отступов строк кода) в файле /etc/vim/vimrc, я выяснил, как заставить вещи работать со следующей командой:

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

Будут ли Гуру или ученики, как и ученики, пожалуйста, дайте мне знать, если бы я мог сделать это лучше(более плотно/чище/и т.д.)?

Пример использования awk для того же результата?

Спасибо.

0
задан 11 September 2018 в 19:54
1 ответ

Используйте \ 1 пронумерованные переменные захвата в месте назначения изменения, например, s / ^ ([[: space:]] *) "[[: space:]] * (let. *) / \ 1 \ 2 /

Также используйте sed 'ваше изменение; другое изменение' файл> file.tmp $$ && mv file.tmp $$ file

Это «более безопасный» и переносимый способ изменения файлов на месте, чем sed - i ...

Для файлов точек вроде ~ / .vimrc в ~ и файлов conf в / etc используйте git для их локального сохранения. etckeeper отлично подходит для управления / etc с помощью git.

Некоторые люди используют augeas для редактирования файлов conf или даже chef / puppet для автоматического управления ими.

1
ответ дан 4 December 2019 в 15:50

Теги

Похожие вопросы