SED Sonderzeichen maskieren klappt nicht.
Hallo zusammen,
ich hoffe Ihr könnt mir helfen.
System: Windows
Folgendes Problem:
Ich habe eine Konfigdatei von einem Router.
Diese enthalten die Zeichen <> z.B so: <Targethost1> 172.18.XX.YY </Targethost1>
Mein Ziel ist es. die 172.18.XX.YY mit einer IP z.B. 172.18.25.60 zu ersetzen. Leider kann ich nicht einfach die IP ersetzen da es 4 Targethosts 1-4 gibt und in jeder muss eine andere 172er Adresse stehen. Daher muss ich mit Targethost1> Targethost2> usw. suchen und ersetzen.
Ausschnitt aus meinem Versuch.
sobald ich die <> in der Quelldatei zu Testzwecken entferne, funktioniert es wunderbar.
Würde mich über Hilfe sehr freuen.
Danke
Gruß
Andreas
ich hoffe Ihr könnt mir helfen.
System: Windows
Folgendes Problem:
Ich habe eine Konfigdatei von einem Router.
Diese enthalten die Zeichen <> z.B so: <Targethost1> 172.18.XX.YY </Targethost1>
Mein Ziel ist es. die 172.18.XX.YY mit einer IP z.B. 172.18.25.60 zu ersetzen. Leider kann ich nicht einfach die IP ersetzen da es 4 Targethosts 1-4 gibt und in jeder muss eine andere 172er Adresse stehen. Daher muss ich mit Targethost1> Targethost2> usw. suchen und ersetzen.
Ausschnitt aus meinem Versuch.
set th1= 172.18.XX.YY
set pingcheck1=172.18.25.60
sed -e "s/\<Targethost1\> *%th1%/\<Targethost1\> %pingcheck1% /" quell_datei.epr > Output.epr
sobald ich die <> in der Quelldatei zu Testzwecken entferne, funktioniert es wunderbar.
Würde mich über Hilfe sehr freuen.
Danke
Gruß
Andreas
Please also mark the comments that contributed to the solution of the article
Content-Key: 257055
Url: https://administrator.de/contentid/257055
Printed on: April 24, 2024 at 08:04 o'clock
5 Comments
Latest comment
Moin Andreas,
benutze das ^ Zeichen um Sonderzeichen zu maskieren, also z.B.
Gruß jodel32
benutze das ^ Zeichen um Sonderzeichen zu maskieren, also z.B.
^>
Hallo,
vielleicht habe ich einen Denkfehler, aber die Zeichen "<>" müssen in sed nicht escaped werden, oder?
Ein
tut es -hier zumindest- wunderbar. Wichtig ist, dass bei Deiner Zuweisung der Variablen "th1" in Windows die Variable ein führendes Leerzeichen hat (" 172.18.XX.YY") - das muss im SED-Befehl beachtet werden (wenn es so beabsichtigt ist).
Gruß,
Gersen
vielleicht habe ich einen Denkfehler, aber die Zeichen "<>" müssen in sed nicht escaped werden, oder?
Ein
sed -e "s/<Targethost1>%th1%/<Targethost1> %pingcheck%/"
Gruß,
Gersen