sed 在 XXX 之后的第一个空白行插入行

sed 在 XXX 之后的第一个空白行插入行

我正在使用 bash 脚本以交互方式编辑我的 hosts 文件。我需要在 hosts 文件中插入一行。该行需要插入到特定注释后的第一个空白行中。我插入的内容位于变量中。

这是我尝试过的($NEWLINE 之前已设置):

sed -i '# Insert New DNS / Virtualbox/$NEWLINE/g' /etc/hosts

我没有收到任何错误,但是没有写入该行。有什么建议吗?

答案1

认为:

# Insert New DNS

是您想要在其后插入第一个空行的行:

您可以通过以下命令实现此目的:

 sed -i '/# Insert New DNS/,/^$/s/^$/'"$NEWLINE"'/' /etc/hosts

下面将在文件中搜索行号(地址):

/# Insert New DNS/,/^$/

以下内容将替换“空行”

s/^$/'"$NEWLINE"'/

相关内容