Thread

  1. Removing all instances of "NOT NULL" from an entire directory of files

    Dan Browning <danb@cyclonecomputers.com> — 2000-09-11T23:34:52Z

    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?
    
    (In case you're wondering, I'm working on the pgsql/ directory of .sql files
    that interchange uses to build the database tables).
    
    Thanks,
    
    Dan Browning
    Network & Database Administrator
    Cyclone Computer Systems
    
    
    
  2. Re: Removing all instances of "NOT NULL" from an entire directory of files

    Michael R. Jinks <mjinks@uchicago.edu> — 2000-09-12T00:04:49Z

    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
    
    
  3. Re: Removing all instances of "NOT NULL" from an entire directory of files

    Jesus Aneiros <aneiros@jagua.cfg.sld.cu> — 2000-09-12T02:08:59Z

    On Mon, 11 Sep 2000, Dan Browning wrote:
    
    > 	cat filename | perl -pi -e "s/NOT NULL//g" > filename
    > 
    > But how do I run that command on every file in a directory, successively?
    
    perl -i -pe 's/NOT NULL//g' *
    
    The -i is doing the replacement in place so the pipe and redirection are
    not necesary unless you want to keep the orginals, then you could use
    -ibak
    
    --
    Jesus Aneiros Sosa
    mailto:aneiros@jagua.cfg.sld.cu
    http://jagua.cfg.sld.cu/~aneiros
    
    
    
  4. Re: Removing all instances of "NOT NULL" from an entire directory of files

    ERIC Lawson - x52010 <eric@bioeng.washington.edu> — 2000-09-12T15:26:55Z

    (In tcsh; other shells have similar/equivalent syntax.)
    
    At the shell prompt:
    
    foreach i (*.sql)
    echo $i
    cp $i $i.bkp
    end
    
    I'm using echo and cp to illustrate the syntax only; your command(s) would
    go in their place.
    
    James Eric Lawson
    Research Publications Editor III
    National Simulation Resource
    
    eric@bioeng.washington.edu
    
    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?
    > 
    > (In case you're wondering, I'm working on the pgsql/ directory of .sql files
    > that interchange uses to build the database tables).
    > 
    > Thanks,
    > 
    > Dan Browning
    > Network & Database Administrator
    > Cyclone Computer Systems
    > 
    >