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

Backslash - CRLF - 2 Leerzeichen Kombination finden und ersetzen

Frage Entwicklung Batch & Shell

Mitglied: Highend01

Highend01 (Level 1) - Jetzt verbinden

14.07.2009, aktualisiert 10:55 Uhr, 6040 Aufrufe, 2 Kommentare

Guten Morgen,

innerhalb einer exportierten .reg Datei gibt es häufiger mal REG_BINARY Werte, die sich über mehrere Zeilen erstrecken.

Sowas z.B.:
01.
"Key"=hex:09,EF,BE,0B,C1,89,A1,83,E2,8E,5C,8B,90,15,2E,F4,54,65,67,C9,\ 
02.
  23,E4,DE,0D,36,3E,72,0E,C3,F4,73,8E,EE,C1,61,CF,3B,6D,CC,8E,AE,7A,75,B5,17,\ 
03.
  87,7C,F5,68
Kennt jemand eine Möglichkeit diese Zeilen nach dem "\(CRLF) " zu durchsuchen und dieses gegen
"" (leerer Wert) zu ersetzen?

Ausehen soll das Ganze danach so:
01.
"Key"=hex:09,EF,BE,0B,C1,89,A1,83,E2,8E,5C,8B,90,15,2E,F4,54,65,67,C9,23,E4,DE,0D,36,3E,72,0E,C3,F4,73,8E,EE,C1,61,CF,3B,6D,CC,8E,AE,7A,75,B5,17,4E,14,F6,9D,DD,60,84,3B,45,02,F5,F7,15,11,2D,35,76,D5,BE,29,67,34,0E,C1,36,87,7C,F5,68
Die der .bat Datei übergebene .reg Datei wird am Anfang per

01.
for /f "skip=1 tokens=*" %%a in ('type %1') do ( 
02.
set line=%%a
eingelesen (die entsprechende .reg Datei ist dann der Parameter %1). Es wäre schön wenn schon innerhalb der FOR-Schleife diese Ersetzung stattfinden könnte.

Wenn es nicht mit normalen Batchmitteln möglich ist, käme auch ein Aufruf von sed / tr / awk in Frage
(aus den GnuUtils). Leider hatte ich mit sed / tr keinen Erfolg, was das Zusammenbasteln der nötigen
Parameter für den Aufruf betrifft (und Google wollte für den speziellen Fall auch nicht weiterhelfen).

Danke für evtl. Ideen & Vorschläge!

Gruß,
Highend
Mitglied: paulepank
14.07.2009 um 11:43 Uhr
Hallo Highend,

es geht ja nicht nur um \CRLF, sondern die 2 nachfolgenden Leerzeichen (auf der nächsten Zeile) müssen auch mit ersetzt werden.
Mit rpl geht das so.
01.
rpl -q -e "\\\r\n  " "" datei.reg
Sollte deine reg-datei nicht im ASCII-Format vorliegen, ist ein Zwischenschritt notwendig. rpl verarbeitet keine Pipe.
01.
type datei.reg >neu.reg 
02.
rpl -q -e "\\\r\n  " "" neu.reg
cu paulepank
Bitte warten ..
Mitglied: Highend01
14.07.2009 um 13:01 Uhr
Hallo paulepank,

<quote>
es geht ja nicht nur um \CRLF, sondern die 2 nachfolgenden Leerzeichen (auf der nächsten Zeile) müssen auch mit ersetzt werden.
</quote>

Hatte ich nicht vergessen Steht im Titel drin und auch in der Zeile:

01.
Kennt jemand eine Möglichkeit diese Zeilen nach dem "\(CRLF) " zu durchsuchen und dieses gegen 
02.
"" (leerer Wert) zu ersetzen?
Danke für die von dir vorgeschlagene Lösung! Funktioniert als eine zusätzliche Zeile vor der FOR-Schleife einwandfrei.

Der Parameter -q (für quiet) scheint zwar bei mir keine Auswirkung zu haben (es wird trotzdem gepostet, wie viele Ersetzungen vorgenommen wurden), aber ein
>NUL 2>NUL am Ende der Zeile sorgt für Ruhe.

Danke und Gruß,
Highend
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst In txt file an bestimmter Position zeichen ersetzen, Ideen ? (7)

Frage von buliwyf zum Thema Batch & Shell ...

Windows Server
Domänencontroller ersetzen ? (7)

Frage von uridium69 zum Thema Windows Server ...

Batch & Shell
gelöst Batch Leerzeichen in nur bestimmten Spalten entfernen? (2)

Frage von Komoran12 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Systemdateien
gelöst NTFS und die Defragmentierung (29)

Frage von WinLiCLI zum Thema Windows Systemdateien ...

Server-Hardware
Treiber für Server gesucht (15)

Frage von MeisterFuchs zum Thema Server-Hardware ...

LAN, WAN, Wireless
gelöst Router für Schulnetz (14)

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