title image


Smiley Re: In Datei nur an bestimmten Stellen Zeichen ersetzen???
Hallo,



1 use strict;

2 use warnings;

3

4 open IN, "mit_komma.txt" or die "$!";

5 open OUT, ">mit_punkt.txt" or die "$!";

6 while () {

7 if ($_ =~ m/^(.{9})(.{0,21})(.*)$/o) {

8 my ($a,$b,$c) = ($1,$2,$3);

9 $b =~ s/,/./g;

10 print OUT $a,$b,$c,"\n";

11 } else {

12 print OUT $_,"\n";

13 }

14 }

15 close IN;

16 close OUT;

17



In der Zeile 7 kannst du die Stellen steuern, wo etwas ersetzt werden soll. In diesem Beispiel werden die ersten 9 Zeichen so gelassen, wie sie sind, innerhalb der nächsten bis zu 21 Zeichen wird die Ersetzung durchgeführt, alles dahinter bleibt dann wieder unverändert. D.h. zwischen der 10. und 30. Stellen (jeweils einschließlich) werden alle Kommata durch Punkte ersetzt.

Kann sein, dass du unter Windows am Ende der Zeilen 10 und 12 das "\n" durch ein "\r\n" ersetzen musst.



Gruß



Holger



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: