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

sed вставить строку в первую пустую строку после XXX

Я интерактивно редактирую свой файл 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"'/