linux-l: replace rekursiv
Steffen Solyga
solyga at absinth.net
Di Apr 18 03:56:23 CEST 2000
Dear Jens Dreger, concerning your mail sent on Tuesday, 2000/04/18 2:01
let me reply the following:
> Aber warum denn das ? Dabei geht das doch auch in Perl so einfach:
> ----------------8<---------------------
> #!/usr/local/bin/perl -w
>
> system(
> 'for i in `find . -type f`; do echo "Processing $i";
> file $i | grep text > /dev/null 2>&1 &&
> (echo $i; cp -p $i /tmp/file;
> sed "s/alter string/neuer string/g" /tmp/file > $i;
> touch -r /tmp/file $i; );
> done; rm -f /tmp/file'
> )
> -------------------8<-------------------------
Stimmt! Perl ist doch ganz schön...
Man achte auf das -w, damit sich auch ja kein Fehler einschleicht. Guut!
> > Sieht doch abgefahren aus, oder?
> Stimmt. Hast Du das selbst aus der Keilschrift uebersetzt, oder war das
> babelfish ?
Sowas keimt in meinem kranken Gehirn, muß ab und zu mal rausgelassen werden.
Ohne Witz, inzwischen tippe ich das auf der Kommandozeile.
> Allerdings hat Deine Version den Vorteil, dass sie mit beliebig vielen
> Files klarkommt. Bei "perl -pi -e 's/blah/blub/g' <files>" ist
> natuerlich irgendwann Schluss, wenn die Kommandozeile ueberlaeuft...
Naja, irgendwann ist vielleicht die Platte voll. Ach, ganz vergessen:
Das geht natürlich nicht in der ekelhaften c-shell samt derivaten.
Bourne shell rules.
Hat das nun dem Fragenden geholfen??
--
-------------------------------------------
Steffen Solyga
mail: solyga at absinth.net
www : http://www-tet.ee.TU-Berlin.DE/solyga
-------------------------------------------
Mehr Informationen über die Mailingliste linux-l