我有问题。我想用sed
newsource=1.2.3.4/24
sed -i 's/.*#source*/&\n'"$newsource"'/' file
$newsource
是一个IP,可以包含网络掩码/24
。现在sed
写入完整的IP而不是/24
。我怎么能改变它?
答案 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
您可以使用\来转义/但由于路径存储在变量中,因此可能更容易使用不同的分隔符。