Я интерактивно редактирую свой файл hosts с помощью сценария bash. Мне нужно вставить строку в мой файл hosts. Строку необходимо вставить в первую пустую строку после определенного комментария. Содержимое, которое я вставляю, находится в переменной.
Вот что я пробовал (ранее установлен $ NEWLINE):
sed -i '# Insert New DNS / Virtualbox/$NEWLINE/g' /etc/hosts
Ошибки нет, но строка не написана. Любой совет?
Предположим:
# Insert New DNS
это строка, после которой вы хотите вставить сначала пустую строку:
Вы можете добиться этого с помощью следующей команды:
sed -i '/# Insert New DNS/,/^$/s/^$/'"$NEWLINE"'/' /etc/hosts
Следующее будет искать номера строк (адреса) в файле:
/# Insert New DNS/,/^$/
Следующее заменит «пустую строку»
s/^$/'"$NEWLINE"'/