%20%D0%B2%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B0%D1%85%20%D0%BA%D0%BE%D0%B4%D0%B0%2C%20%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D1%8F%D1%8F%20%D0%B8%D1%85%20%D0%B2%20%D0%BD%D0%B0%D1%81%D1%82%D0%BE%D1%8F%D1%89%D0%B8%D1%85%20%D0%BA%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D1%8F%D1%85%20%D0%B2%20vimrc%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
в ~, и файлов conf в /etc используйте git, чтобы сохранить их локально. etckeeper отлично подходит для управления /etc с помощью git.
Некоторые люди используют augeas
для редактирования файлов conf или даже chef/puppet для автоматического управления ими.