in reply to Open Files in Unix

I would use something like the following command line.
find -name -exec perl -p -i.backup -e 's/search/ +replace/g' {} \;
For example:
$ mkdir x $ cd x $ mkdir b $ date > asdf $ date > b/asdf $ cat asdf Wed Oct 8 13:11:35 MDT 2008 $ find . -name asdf -exec perl -p -i.backup -e 's/1/XXX/g' {} \; $ cat asdf Wed Oct 8 XXX3:XXXXXX:35 MDT 2008 $ cat b/asdf Wed Oct 8 XXX3:XXXXXX:37 MDT 2008 $ cat asdf.backup Wed Oct 8 13:11:35 MDT 2008

Replies are listed 'Best First'.
Re^2: Open Files in Unix
by swartzieee (Initiate) on Oct 08, 2008 at 20:04 UTC
    to run as a perl script do i do system ("find -name -exec perl -p -i.backup -e 's/search/ +replace/g' {} \");

      I personally believe that if this is a question, then it should be marked with... a question mark. Anyway, the answer is yes, or at least that is a possible way to do it. (Except that, as a minor point, you should quote the backslash.) But more importantly why, precisely, should you run the above line "as a perl script?" The whole point was that probably a single find(1) command is better suited to your need than a whole Perl program. (Although one may consider there that perl is called multiple times in the second case, and this includes a overhead... probably a completely irrelevant consideration, in this particular situation - and there are simple cures, anyway.)

      If you can't understand the incipit, then please check the IPB Campaign.