Использование sed для удаления "(двойные кавычки) в строках кода, оставляя их в реальных комментариях в vimrc
Я наконец учусь пользоваться sed
редактировать конфиги при установке Ubuntu(Server/Desktop). После большого скрежета зубов и поиска правильного синтаксиса, чтобы не удалить "
(комментируйте двойные кавычки с ровно одним пробелом после этого (реальные комментарии)), в отличие от строк, которые могут переключать код (ноль пробелов или два пробела для строк с отступом) в /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 для автоматического управления ими.