Thread Hilfestellung - Suchen und Ersetzen im Speziellen bei großen Dateien
(16 answers)
Opened by jan99 at 2015-11-06 18:21
Ich denke, die theoretisch saubere Lösung wäre, dafür einen XML-Parser zu verwenden; also wahrscheinlich eines der XML::* Module. Wieweit diese mit mehreren Hundert MB Daten klar kommen, weiß ich nicht. Müsstest Du vielleicht mal ausprobieren. Oder jemand mit Erfahrung äußert sich dazu.
Eine "schmutzigere" Lösung wäre simples Suchen/Ersetzen per Regex. Vor allem, wenn die Tags wirklich pro Zeile vorliegen; denn dann kann man einfach zeilenweise einlesen lassen. Die lat und lon Werte kann man per Regex einfangen und im Ersetzungsteil durch eine Funktion verändern lassen. Schema (unsauberer Schnellschuß): Code (perl): (dl
)
$line =~ s{wert="(\d+)"}{sprintf 'wert="%d"', function($1) }e; Hilfreich ist dabei auch Perls Kommandozeilen-Parameter -i; siehe perlrun Damit kann man eine Datei "inline" editieren (und auch ein Backup der alten Datei erstellen lassen). Edit: Dazu sind natürlich auch noch die Parameter -n und/oder -p interessant. Last edited: 2015-11-06 19:39:44 +0100 (CET) meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |