Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

SED Sonderzeichen maskieren klappt nicht.

Frage Entwicklung Batch & Shell

Mitglied: BloodyRulz

BloodyRulz (Level 1) - Jetzt verbinden

08.12.2014, aktualisiert 09.12.2014, 2116 Aufrufe, 5 Kommentare, 1 Danke

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.
01.
set th1= 172.18.XX.YY 
02.
set pingcheck1=172.18.25.60 
03.
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
Mitglied: 114757
08.12.2014, aktualisiert um 16:43 Uhr
Moin Andreas,
benutze das ^ Zeichen um Sonderzeichen zu maskieren, also z.B.
^>
Gruß jodel32
Bitte warten ..
Mitglied: BloodyRulz
08.12.2014, aktualisiert um 16:58 Uhr
Vielen Dank für die schnelle Antwort,

ich habe es auf die schnelle mal probiert, leider hat sich die IP nicht ersetzt. (ohne Fehlermeldung)

Ich werde das gleich morgen nochmal genau testen und probieren.

Muss ich das dann in der ganzen sed Zeile abändern obwol die anderen "Ersetzungen" super funktionieren?

01.
sed -e "s/DS100/%ds100%/; s/ART STANDORTNAME/%artstandort%/; s/ZZ.FF/%zo%.%do%/; s/ZZ.0./%zo%.0./; s/.HH/.4/; s/\$Revision: /Revision:/; s/ *\$ */  /; s/^<Targethost1^> *%th1%/^<Targethost1^> %pingcheck1% /" %quell_datei% > %ds100%_%artstandort%_RFU1.epr
Danke für deine schnelle Hilfe.

Gruß
Andreas
Bitte warten ..
Mitglied: Gersen
08.12.2014, aktualisiert 09.12.2014
Hallo,

vielleicht habe ich einen Denkfehler, aber die Zeichen "<>" müssen in sed nicht escaped werden, oder?

Ein
sed -e "s/<Targethost1>%th1%/<Targethost1> %pingcheck%/"
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
Bitte warten ..
Mitglied: colinardo
LÖSUNG 08.12.2014, aktualisiert 09.12.2014
Hallo Andreas,
das hier macht bei mir das gewünschte
01.
@echo off 
02.
set pingcheck1=172.18.25.60 
03.
sed -e "s/\(<Targethost1>\).*\(<\/TargetHost1>\)/\1%pingcheck1%\2/i" quell_datei.epr >Output.epr
Grüße Uwe
Bitte warten ..
Mitglied: BloodyRulz
09.12.2014 um 08:12 Uhr
Vielen Dank an alle,

die Lösung von colinardo hat den gewünschten Erfolg gebracht.

Vielen Dank

Gruß
Andreas

(closed)
Bitte warten ..
Ähnliche Inhalte
Router & Routing
gelöst VPN über o2 Box6431 zum Firmennetzwerk klappt nicht (5)

Frage von Beelzebub zum Thema Router & Routing ...

Batch & Shell
gelöst Warum funktioniert das echo in meiner for-Schleife auch mit Sonderzeichen? (9)

Frage von Pedant zum Thema Batch & Shell ...

Windows Server
Server 2012R2 GPO Laufwerksmapping klappt nicht (5)

Frage von christe zum Thema Windows Server ...

Neue Wissensbeiträge
Administrator.de Feedback

Umgangsformen auf der Seite

(7)

Information von Frank zum Thema Administrator.de Feedback ...

Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(11)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Dir tc Befehl unter Windows 10 macht Probleme (14)

Frage von sugram zum Thema Batch & Shell ...

Windows Server
Windows Server Komplettspiegelung (13)

Frage von pdiddo zum Thema Windows Server ...

Windows Server
Windows Server 2016 RDS Remoteapp Anzeigefehler (11)

Frage von qlnGenius zum Thema Windows Server ...