用Netmask写一个IP(sed)

时间:2016-08-02 11:39:28

标签: bash shell sed

我有问题。我想用sed

将IP写入文件
newsource=1.2.3.4/24
sed -i 's/.*#source*/&\n'"$newsource"'/' file

$newsource是一个IP,可以包含网络掩码/24。现在sed写入完整的IP而不是/24。我怎么能改变它?

2 个答案:

答案 0 :(得分:2)

这是因为您必须转义/,或将sed分隔符更改为其他内容:

转义:\/

newsource=1.2.3.4\/24
sed -i 's/.*#source*/&\n'"$newsource"'/' file

sed分隔符更改为~

newsource=1.2.3.4/24
sed -i 's~.*#source*~&\n'"$newsource"'~' file

分享并享受。

答案 1 :(得分:2)

尝试:

sed -i 's|.*#source*|&\n'"${newsource}"'|' file

您可以使用\来转义/但由于路径存储在变量中,因此可能更容易使用不同的分隔符。