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, 2042 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows 10
gelöst Klappt es noch mit 7 Key Windows 10 zu aktivieren? (12)

Frage von zeroblue2005 zum Thema Windows 10 ...

LAN, WAN, Wireless
gelöst Router Switch zwei APs Verbindung klappt nicht (16)

Frage von c3t1n57 zum Thema LAN, WAN, Wireless ...

Apache Server
gelöst OsTicket Email versenden klappt nicht (5)

Frage von ClepToManix zum Thema Apache Server ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...