Thread Hilfestellung - Suchen und Ersetzen im Speziellen bei großen Dateien (16 answers)
Opened by jan99 at 2015-11-06 18:21

Linuxer
 2015-11-06 19:06
#182789 #182789
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
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 Perldoc: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!

View full thread Hilfestellung - Suchen und Ersetzen im Speziellen bei großen Dateien