webForumDet fria alternativet

Perl

2 svar · 364 visningar · startad av Sebek

SebekMedlem sedan juni 20009 inlägg
#1

Hej jag vore tacksam om någon skull vilja svara på detta.

Jag hittade ett exempel i en bok som byter ut alla ord som heter tex Karl och byter dem mot Kalle.

Det ser ut så här,
---------------
#!/usr/bin/perl

while (<> ) {
s/Karl/Kalle/g;
print;
}
---------------

Men med detta är ju problemt att jag inte vet hur jag ska få in en text fil som den söker efter Karl i?

------------------
/Sebek

Peter_BMedlem sedan apr. 2000595 inlägg
#2

Du vill alltså:

läsa in en fil
ändra alla Karl till Kalle
skriva filen igen

?

kan tex göras såhär:

#!/usr/bin/perl

open (IN_FILE,"karl.fil") or &die("kan inte öppna fil: karl.fil");
my @lines = <IN_FILE>;
close (IN_FILE);

open (OUT_FILE,">kalle.fil") or &die("kan inte öppna fil: kalle.fil");
foreach my $line (@lines) {
$line =~s/Karl/Kalle/g;
print OUT_FILE $line;
}
close (OUT_FILE);

eller dyligt. har ej testat, så jag kan inte hållas ansvarig för någonting! :). rätta den som rätta vill.

Peter Bredlöv
http://www.scorpiondata.com

JojoxxMedlem sedan juni 20004 306 inlägg
#3
#!/usr/bin/perl 

open(INDATA,"/path/to/fil.txt") &#0124; &#0124; die 'Kan inte läsa filen'; 
while (<INDATA> ) { 
s/Karl/Kalle/g; 
print; 
} 
close(INDATA);

------------------

/ J

Genererad på 374 ms · cache AV · v20260730165559-full.f96bc7eb