On Thu, Jan 07, 2010 at 03:38:23PM +0530, Foss User wrote: > This is my directory structure: > . > | a.sh > | a.txt > | > +---foo bar > | b.txt > | > +---santa > | | c.txt > | | > | \---humpty dumpty > | e.txt > | > \---test > d.txt > > I want to do some operation on each file ending with .txt. However, > this script wouldn't work because in each iteration it gets one word > from the output of find. > > Script: > > for file in `find -name "*.txt"` > do > echo file: $file > done > > Execution: > > $ sh a.sh > file: ./a.txt > file: ./foo > file: bar/b.txt > file: ./santa/c.txt > file: ./santa/humpty > file: dumpty/e.txt > file: ./test/d.txt > > You can see how ./santa/humpty dumpty/e.txt has been broken into two > iterations. Any way to resolve this? do man bash or man sh or man dash which ever you are using and look up IFS oIFS="$IFS" IFS=' ' for file in `find -name "*.txt"` do echo file: $file done IFS="$oIFS" I think should work > > -- "In other words, I don't think people ought to be compelled to make the decision which they think is best for their family." - George W. Bush 12/11/2002 on smallpox vaccinations, Washington, D.C.
Attachment:
signature.asc
Description: Digital signature