Perl

Perl & Ruby

2 svar · 370 visningar · startad av Sebek

Medlem sedan juni 20008 inlägg
Trådstart#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?

Medlem sedan apr. 2000642 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

Medlem sedan juni 20004 308 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);
256 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)