Mailing List Archive

Support open source code!


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: tlug: Re: search & replace (was: Grep for subdirectories?)



Rex Walters did state upon Mon, Oct 05, 1998 at 03:18:19PM +0900:
> On Mon, Oct 05, 1998 at 02:30:16PM +0900, Scott Perlman wrote:
> > actually, just in the spirit of the subdirectories it should probably be 
> > find . -name '*.html' -e 'perl -pi.bak -e "s/match/replace/" {} ;'
> > 
> > (all that is is wrapping The provided perl witha find)
> 
> Actually, to be pedantic, Darren wrote:
> 
> > > > I've a similar question: How do I do a search and replace operation on
> > > > files?
> 
> Thus I didn't specifically include any recursion into sub-directories.
> 
> But if you really wanted to do the search and replace on all the .html
> files in an entire directory *tree*, you might be better off doing it
> differently from how you've described unless you're quite certain that
> there are only a few .html files.
> 
> The problem is that yours will fire off a new perl process for each and
> every .html file found.  This can be pretty slow on a under-powered
> (under-memoried) machine.  With only 200 html files it probably doesn't
> matter (but if they are *big* html files ... ;-).
> 
> Better would be to do the recursion/inode-walk within perl (the find
> module is useful for this) or to feed the filenames into stdin.  Both
> options are sufficiently ugly as a one liner that I would probably break
> down and write a real script.  :-)
> 

Actually no, 
find . -name '*.html' -print | xargs perl -pi.bak -e "s/match/replace/"

Now you've got one perl process (or one per however many arguments
xargs supports)

And the question was how to find the files in recursed directories,
with a followup of how to operate on them..

-Scott (who hasn7t had to do enough real programming to learn all of
the modules andstuff for perl or anything else, but has picked up some
shell tricks here and there)

-- 
Why are we here? Because we're here! | Scott H. Perlman
  Roll The Bones!!  --RUSH	     | 
SH-T CRAPS AGAIN!!!!!!!		     | perlman@example.com
---------------------------------------------------------------
Next Meeting: 10 October, 12:30 Tokyo Station Yaesu central gate
Featuring the IMASY Eng. Team on "IPv6 - The Next Generation IP"
Next Nomikai: 20 November, 19:30  Tengu TokyoEkiMae 03-3275-3691
---------------------------------------------------------------
Sponsor: PHT, makers of TurboLinux http://www.pht.co.jp


Home | Main Index | Thread Index

Home Page Mailing List Linux and Japan TLUG Members Links