Siechfred: Zeichenweiser Zugriff auf große Dateien

Beitrag lesen

Hell-O!

Ich brauche nur einen Befehl, den man da an der Komandozeile eingeben kann - so wie den, den ich probiert habe.

Mit einem Befehl ist es nicht getan, du brauchst ein Script, das deine Datei block- bzw. zeichenweise einliest und wegschreibt. Wird ein bestimmtes Muster gefunden, dann wird nicht das gelesene sondern ein Zeilenumbruch weggeschrieben. Mal so runtergetippt:

my $source = $ARGV[0];  
my $target = $ARGV[1];  
my $char = '';  
open IN, $source;  
open OUT, ">$target";  
flock OUT, LOCK_EX;  
while(!eof(IN)) {  
  # naechstes Zeichen lesen  
  $char .= getc(IN);  
  print STDOUT "$char\n";  
  # naechster Durchlauf, wenn ) oder ; am Ende stehen  
  next if $char =~ /[);]$/;  
  # Suchen und Ersetzen  
  $char =~ s/\); /\);\n/;  
  # Wegschreiben  
  print OUT $char;  
  # $char leeren  
  $char = '';  
}  
close(IN);  
close(OUT);

So müsste es funktionieren.

Siechfred

--
Ich bin strenggenommen auch nur interessierter Laie. (molily)
Siechfreds Tagebuch || Falle Aufteilungsbescheid || RT 221 Erfurt-Altstadt i.V.