使用 sed 在主机文件的行尾添加地址

Tom*_*ley 5 unix bash shell sed

我的主机文件中有一个特定行用于本地 Wordpress Multisite 安装,如下所示:

127.0.0.1       localhost domain.dev site1.domain.dev site2.domain.dev
Run Code Online (Sandbox Code Playgroud)

我正在编写一个 Shell 脚本,可以运行该脚本直接从终端在我的多站点安装上创建一个新的单独站点。每当运行此命令时,我都需要能够向 /etc/hosts 文件添加新记录。在 Shell 文件中,我使用$site_addr站点名称作为变量。然后,您需要将 .domain.dev 添加到其末尾。我使用 sed 完成的一个示例(不起作用):

sed -i'.bak' '7i7 $site_addr.domain.dev' /etc/hosts
Run Code Online (Sandbox Code Playgroud)

我需要编辑的主机文件(上面)中的行是第 7 行,因此是7i7sed 命令中的行。我想在行尾添加新记录。我还想创建一个备份主机文件,以防出现问题。

感谢您的帮助,希望我已经解释得足够好:)

Ner*_*elu 5

如果这是7号线

sed -i '.bak' "7 s/$/ ${site_addr}.domain.dev/" /etc/hosts
Run Code Online (Sandbox Code Playgroud)

但你可以使用模式匹配(更安全一点)

sed -i '.bak' "/127\.0\.0\.1/ s/$/ ${site_addr}.domain.dev/" /etc/hosts
Run Code Online (Sandbox Code Playgroud)

我建议首先检查该域名是否尚未存在