At Thu, 18 Sep 2003 12:16:06 +0200, Torsten Reuss wrote: > > csj wrote: > > >At Tue, 16 Sep 2003 17:08:51 +0200, > >Matthias Czapla wrote: > > > > > >>On Tue, Sep 16, 2003 at 07:39:39AM -0700, Ric Otte wrote: > >> > >> > >>>Hi, I would like to run all of the files in some directories > >>>through sed, in order to edit the files. I can do it for > >>>individual files by typing: cat filename|sed command>filename > >>>But that requires me to run that command for each file. I > >>>was wondering if anyone could 1) give me a reference to a > >>>simple bash tutorial that will explain how to set up a script > >>>to do things like this, > >>> > >>> > >>http://www.tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html > >> > >> > >> > >>>and 2) tell me how to do it. > >>> > >>> > >>for f in *; do tmp=`tempfile`; cat $f | sed command > $tmp ; mv $tmp $f; done > >> > >> > > > >Is there anything intrinsically wrong with: > > > >find directory -name "*.foo" | xargs sed -i -f sed_script > > > > > > > One difference not mentioned yet is that the "for f in" solution will > work on files in the current directory while the "find" solution will > recurse through subdirectories. If using find I would also add a "-type > f" so you don't end up trying to run sed on directories.
sed -i -f sed_script *.foo (assuming *.foo to be all -type f) -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]