[lug] simple text editing problem

Rob Nagler nagler at bivio.biz
Thu Aug 22 12:17:51 MDT 2002


Jeff Schroeder writes:
> You could use vi (or a clone like Elvis) in conjunction with a find 
> command...
> 
> vi `find -name "*.c" -exec grep -l <regexp> {} \;`

I find:

grep -Irl <regexp>

to do the right thing.  *.h is missing above.

You can do it all in one line with:

perl -pi.bak -e 's/<old>/<new>/g' $(grep -Irl '<old>')

If you want to filter on name, just do:

perl -pi.bak -e 's/<old>/<new>/g' $(grep -Irl '<old>' | grep '\.[ch]$')

Rob





More information about the LUG mailing list