Назад | Перейти на главную страницу

Использование 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 пронумерованные переменные захвата в месте назначения изменения, например 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, или даже для автоматического управления ими.