[ic] Re: Removing all instances of "NOT NULL" from an entire directory of files

Michael R. Jinks mjinks@uchicago.edu
Mon, 11 Sep 2000 19:04:49 -0500


Try this:

find /path/to/files -type f -exec perl -pi -e "s/NOT NULL//g" {} \;

Check the find(1) manpage for an explanation of the -exec directive.

HTH,
-m


On Mon, Sep 11, 2000 at 08:02:17PM -0400, rpjday wrote:
> On Mon, 11 Sep 2000, Dan Browning wrote:
> 
> > OK, I've got a command (or two) that will remove all NOT NULL strings from a
> > given file.
> > 
> > 	cat filename | perl -pi -e "s/NOT NULL//g" > filename
> > 
> > But how do I run that command on every file in a directory, successively?
> > 
> 
> whoa, the above perl program does NOT need to have input piped into it.
> all you need to say is:
> 
> $ perl -pi -e "s/NOT NULL//g" file1 file2 file3 ...
> 
>   one at a time, each file argument will be edited *in place*, saved
> back into the original file, and processing moves to the next file.
> 
>   if you want to play it safe, use the option "-pi.BAK" instead, which
> will copy the original file to the name file.BAK (or whatever suffix
> you want) before doing the actual editing.
> 
> rday
> 
> p.s.  warning.  running any command on a file, and trying to redirect
> the new output back to the original file, is a recipe for DISASTER!
> most likely, due to the way redirection works, the file will be wiped
> and you will lose *all* of its contents.
> 
> 
> 
> _______________________________________________
> Redhat-list mailing list
> Redhat-list@redhat.com
> https://listman.redhat.com/mailman/listinfo/redhat-list

-- 
Michael Jinks, IB
Systems Administrator, CCCP
finger mjinks@embley.spc.uchicago.edu for public key
Vote Duke! http://www.entertaindom.com/pages/duke2000/home.jsp