2016-08-02 22 views
2

Ich habe ein Problem. Ich möchte mit sedSchreibe eine IP mit Netzmaske (sed)

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

$newsource ist eine IP eine IP in eine Datei schreiben, die eine Netto-Maske /24 oder nicht enthalten. Im Moment schreibt die sed die volle IP, aber nicht die /24. Wie kann ich das ändern?

Antwort

2

Dies liegt daran, Sie müssen entweder Ihre /, oder ändern Sie den sed Separator etwas entgehen anderes:

Flucht: \/

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

oder

Änderung sed Separator ~

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

Teilen und genießen.

2

Versuchen:

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

Sie \ die/zu entkommen verwenden könnten, aber da der Pfad in einer Variablen gespeichert ist es wahrscheinlich einfacher, ein anderes Trennzeichen zu verwenden.