首页 > 解决方案 > 在 bash 脚本中将两个变量传递给 sed

问题描述

希望有人能够在这里为我指明正确的方向。当我在 sed 中传递两个变量时,它似乎不再识别输入,因此不会替换我正在寻找的字符串。

有人可以看看我的语法吗?

让我们在这里假设

$netmask1="/24"

$ipaddrs="192.168.0.2 192.168.0.3
astringb=$(grep -m 1 addresses /etc/netplan/01-netcfg.yaml)
astringa=${astringb:0:-1}
ipaddrs=$(echo $ipaddrs | sed "s| |$netmask1\,|g")

sed "s|$astringb|$astringa$ipaddrs$netmask1\]|g" /etc/netplan/01-netcfg.yaml

一旦我将变量 $astringb 传递给 sed,它就不再能够在我的 netplan 配置文件中识别所述字符串。如果我用这个文件中的任何实际文本替换这个变量,它会立即识别并替换。

将不胜感激任何帮助。

标签: bashsed

解决方案


推荐阅读