/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
Search and Replace
Fra : Thomas Albech


Dato : 03-01-01 12:37

Hej gutter og gutinder...

Er der nogle der er i besidelse af et search & replace perl script....? Det
skal kunne modtage følgende syntax: scriptnavn [old string] [new string]
filename(s)


/thomas




 
 
Martin Moller Peders~ (03-01-2001)
Kommentar
Fra : Martin Moller Peders~


Dato : 03-01-01 12:52

In <92v2t9$1ut$1@news.inet.tele.dk> "Thomas Albech" <thomas@albech.dk> writes:

>Hej gutter og gutinder...

>Er der nogle der er i besidelse af et search & replace perl script....? Det
>skal kunne modtage følgende syntax: scriptnavn [old string] [new string]
>filename(s)


Det kan klares paa en linie:
perl -pe " s/Martin/Kurt/g; " x.txt y.txt >z.txt
Vil erstatte alle forekomster af Martin med Kurt i filerne x.txt og y.txt og
gemme resultatet i z.txt.

Hvis du vil have mere hjaelp fra mig skal du hente betale eller laes
lidt i en perl-bog selv.

Mvh
Martin






Aslak Ransby (17-01-2001)
Kommentar
Fra : Aslak Ransby


Dato : 17-01-01 21:59

Hej

Jeg går tilfældigvis også og leder efter et script eller nogle
dokumenter om hvordan man søger og erstatter med perl.

Der er bare den detalje at funktionen skal bruges i et compileret
perlscript på en computer der ikke har perl installeret. Derfor kan
jeg ikke bruge metoden som Martin beskrev.

Hvis i har nogle forslag til hvad jeg ellers kan gøre vil jeg blive
lykkelig

MVH Aslak Ransby

Lars Balker Rasmusse~ (17-01-2001)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 17-01-01 22:08

Aslak Ransby <aslak-ransby@get2net.dk> writes:
> Der er bare den detalje at funktionen skal bruges i et compileret
> perlscript på en computer der ikke har perl installeret. Derfor kan
> jeg ikke bruge metoden som Martin beskrev.
>
> Hvis i har nogle forslag til hvad jeg ellers kan gøre vil jeg blive
> lykkelig

Martin skrev (med Klaus' hjælp):

perl -pi -e " s/Martin/Kurt/g; " x.txt y.txt

Thorbjørn skrev:

perldoc perlrun

Sidstnævnte siger:

From the shell, saying

$ perl -p -i.orig -e "s/foo/bar/; ... "

is the same as using the program:

#!/usr/bin/perl -pi.orig
s/foo/bar/;

which is equivalent to

#!/usr/bin/perl
$extension = '.orig';
LINE: while (<>) {
if ($ARGV ne $oldargv) {
if ($extension !~ /\*/) {
$backup = $ARGV . $extension;
}
else {
($backup = $extension) =~ s/\*/$ARGV/g;
}
rename($ARGV, $backup);
open(ARGVOUT, ">$ARGV");
select(ARGVOUT);
$oldargv = $ARGV;
}
s/foo/bar/;
}
continue {
print; # this prints to original filename
}
select(STDOUT);

God fornøjelse.
--
Lars Balker Rasmussen "Woo hoo!?"

Aslak Ransby (17-01-2001)
Kommentar
Fra : Aslak Ransby


Dato : 17-01-01 22:59

Tak :)

MVH Aslak Ransby

On 17 Jan 2001 22:08:28 +0100, Lars Balker Rasmussen <lars@balker.org>
wrote:

>Aslak Ransby <aslak-ransby@get2net.dk> writes:
>> Der er bare den detalje at funktionen skal bruges i et compileret
>> perlscript på en computer der ikke har perl installeret. Derfor kan
>> jeg ikke bruge metoden som Martin beskrev.
>>
>> Hvis i har nogle forslag til hvad jeg ellers kan gøre vil jeg blive
>> lykkelig
>
>Martin skrev (med Klaus' hjælp):
>
> perl -pi -e " s/Martin/Kurt/g; " x.txt y.txt
>
>Thorbjørn skrev:
>
> perldoc perlrun
>
>Sidstnævnte siger:
>
> From the shell, saying
>
> $ perl -p -i.orig -e "s/foo/bar/; ... "
>
> is the same as using the program:
>
> #!/usr/bin/perl -pi.orig
> s/foo/bar/;
>
> which is equivalent to
>
> #!/usr/bin/perl
> $extension = '.orig';
> LINE: while (<>) {
> if ($ARGV ne $oldargv) {
> if ($extension !~ /\*/) {
> $backup = $ARGV . $extension;
> }
> else {
> ($backup = $extension) =~ s/\*/$ARGV/g;
> }
> rename($ARGV, $backup);
> open(ARGVOUT, ">$ARGV");
> select(ARGVOUT);
> $oldargv = $ARGV;
> }
> s/foo/bar/;
> }
> continue {
> print; # this prints to original filename
> }
> select(STDOUT);
>
>God fornøjelse.


Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409081
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste