2016-08-02 15 views
2

我遇到問題。我想寫一個IP到一個文件與sed使用Netmask編寫IP(sed)

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

$newsource是IP,它可以包含一個網絡掩碼/24與否。 sed現在寫完整的IP,但不是/24。我該如何改變它?

回答

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 

分享和享受。

2

嘗試:

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

你可以使用\逃出/但是由於路徑存儲在一個變量它可能更容易使用不同的分隔符。