In <[email protected]>, 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. > >Script: > >for file in `find -name "*.txt"`
Backticks aren't magic. They don't understand the output of the command
within, they simply break on whitespace.[1]
>do
> echo file: $file
>done
Try this:
find -name "*.txt" -exec /bin/sh -c 'echo file: $1' ignored {} \;
If using GNU find, you can use fewer processes by using a '+' instead of a ':'
and having the shell script (the part in single quotes) handle multiple
arguments.
[1] It's actually a bit more complex than that. Look for documentation on
word-splitting for your favorite shell.
--
Boyd Stephen Smith Jr. ,= ,-_-. =.
[email protected] ((_/)o o(\_))
ICQ: 514984 YM/AIM: DaTwinkDaddy `-'(. .)`-'
http://iguanasuicide.net/ \_/
signature.asc
Description: This is a digitally signed message part.

