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

Использование команды sed для замены файла конфигурации комментарием в терминале Linux

Я немного знаю о sed. В / etc / nanorc я получил кучу настроек с комментариями (например :).

#bind ^K setting 1
#bind ^F whereis all
#bind ^J setting 3

Итак, я хочу закомментировать только этот параметр, чтобы включить клавишу CTRL + D в nano:

#bind ^F whereis all

Я пробовал это, но похоже, что это не работает:

sed -ri "s/#bind ^F whereis all.*$/\bind ^F whereis all/" /etc/nanorc

Серьезно, я не знаю, как с этим жить.

Комментировать одну строку намного проще с помощью простого текстового редактора, но в любом случае ...

Ваша команда не работает, потому что ^ - специальный символ регулярного выражения, означающий «начало строки» (если не между [ и ]). Таким образом, ваше регулярное выражение никогда не будет совпадать, потому что вы ожидаете, что начало строки будет в середине строки. Кроме того, вы избегаете b символ в замене, который не нужен. Используйте вместо этого:

sed -ri "s/#bind \\^F whereis all.*$/bind ^F whereis all/" /etc/nanorc