Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]13154[/thread]

Dateiinhalt auslesen und ersetzen?

Leser: 3


<< >> 5 Einträge, 1 Seite
Gast Gast
 2009-02-18 13:54
#118957 #118957
Hallo,

ich habe eine Datei in der ne ganze Menge Code steht ... unter anderem an manchen Stellen auch
"xxxx"

Wobei ein x eine Zahl zwischen 0 und 9 sein kann.

Also zB
"0129"

Ich möchte in dieser Datei die "" und die vier Zahlen auslesen und ersetzen.
renee
 2009-02-18 14:01
#118959 #118959
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
use Tie::File;

my $file = '/path/to/file.txt';

tie my @lines, 'Tie::File', $file or die $!;
for my $line ( @lines ){
    $line =~ s/"\d{4}"/deine_ersetzung/g;
}
untie @lines;
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2009-02-18 14:15
#118961 #118961
Danke schonmal für die schnelle Antwort

bekomme eine Fehlermeldung: access denied at line 5
Linuxer
 2009-02-18 14:18
#118962 #118962
User since
2006-01-27
3872 Artikel
HausmeisterIn

user image
Tja, da musst Du wohl mal die Zugriffsrechte kontrollieren.
Sieht so aus als ob der User, der das Skript ausführt, nicht ausreichend Rechte an der Datei besitzt.
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!
Gast Gast
 2009-02-24 12:01
#119094 #119094
vielen Dank auch von dieser Stelle -- hatte ein ähnliches Probl. zu lösen (ein eigentlich alltägliches ..) - mehrere Dutzend HTML Seiten einfach nach String durchsuchen & ersetzen.
Tie::File hatte das Debian glücklicherweise schon mitgebracht, auf dem ich gearbeitet hatte. Ohne mich mit TIE näher zu beschäftigen (wir arbeiten hier sonst ausschl. mit PHP) hatte ich das Probl. in Minuten gelöst :) man braucht sowas immer wieder. vielen Dank
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/perl -w
use Tie::File;

# die HTML Seiten 
my @files = ("1.html", "2.html", ...);

$vor = "string zu suchen";
$nach = "string zu ersetzen";

for my $file (@files) {
  tie my @lines, 'Tie::File', $file or die $!;

  for my $line ( @lines )  {
        $line =~ s/$vor/$nach/g;
   }
   untie @lines;
   print "datei".$file."fertig \n";
}


<< >> 5 Einträge, 1 Seite



View all threads created 2009-02-18 13:54.