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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 257055
Url: https://administrator.de/forum/sed-sonderzeichen-maskieren-klappt-nicht-257055.html
Ausgedruckt am: 05.04.2025 um 18:04 Uhr
5 Kommentare
Neuester Kommentar

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