sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #56718
recursiv sed med samme in/out.
Hejsa
Jeg har det lille problem at jeg har en masse php filer som ligger i
forskeligge subdirs, i dem alle sammen skal jeg ændre $DOCUMENT_ROOT til
$_SERVER[DOCUMENT_ROOT] der er jo ikke svært at lave en regexp til det,
det svære er at få det gjordt. Først prøvede jeg sed og andre console
programmer, men det lader til at unix ikke kan klare at samme fil er
både in og output (den vælger at tømme filen helt)... så det gik jeg væk
fra pt leger jeg med "find . -type f -name '*.php' -print0 | xargs -0
./test.pl" hvor test.pl er et hjemmelavet script der ser sådan her ud:
>>
#!/usr/bin/perl
open(READFILE,@ARGV[0]);
while (<READFILE>) {
s/\$DOCUMENT_ROOT/\$_SERVER\[DOCUMENT_ROOT\]/g;
$string .= $_
}
close(READFILE);
open(WRITEFILE,">>@ARGV[0].bak");
print WRITEFILE "$string";
close(WRITEFILE);
unlink($ARGV[0]);
print $ARGV[0],"\n";
rename("$ARGV[0].bak",$ARGV[0]);
<<
der funker da også, lige bortset fra at den kun kører 1 fil igennem
hvorefter det hele quiter. hvis jeg kører den samme commando bare med
echo istedet for test.pl viser den pænt alle filer -- hvor er problemet
?!?!?
Ask
Follow ups