Help With 'for' Loop
Drew Tomlinson
drew at mykitchentable.net
Fri Oct 14 13:09:09 PDT 2005
On 10/14/2005 12:52 PM David Kirchner wrote:
>On 10/14/05, Drew Tomlinson <drew at mykitchentable.net> wrote:
>
>
>>Sorry to be such a pest today. I'm working on a sh script that uses a
>>for loop. To test, I've written the following:
>>
>>for i in `/usr/bin/find /multimedia/Pictures -iname "*.jpg" -or -iname
>>"*.gif" -print`
>> do
>> echo -e "\n$i"
>>done
>>
>>The first line 'find' returns is "/multimedia/Pictures/1998
>>Christmas/April01.JPG"
>>
>>Yet 'echo $i' only returns "/multimedia/Pictures/1998", stopping at the
>>first space. Is it possible to get 'i' to represent the whole string
>>that 'find' returns? If so, how?
>>
>>
>
>'while read i' will do what you want, but may cause issues with
>programs that expect to be able to read from stdin within the loop.
>
>find $findstuff | while read i
>do
> echo $i
>done
>
>
Thank you for your reply. I just tried 'while read i' and it works in
this context. I'll find out soon enough if I have the stdin trouble you
mention. I don't think I will but I'm very new to script writing.
What I am ultimately attempting is to recursively search a directory and
then create symlinks with modified names in a new directory to files in
the first directory. For example, the first file found is
"/multimedia/Pictures/1998 Christmas/April01.JPG". After saving this
string in 'i' (or maybe a more descriptive name), I want to manipulate
the string to be "1998_Christmas-April01.JPG" and then issue 'ln -s
"/multimedia/Pictures/1998 Christmas/April01.JPG"
/newdir/1998_Christmas-April01.JPG'. I've fiddled a bit with 'sed' and
think I can make it work but I'm sure I'll be back with more questions. :)
>You can also try something like:
>
>find $findstuff -exec echo {} \;
>
>(where $findstuff is your -iname conditionals). {} is replaced by the
>files or directories found by find, and \; is necessary to terminate
>the -exec argument.
>
>
Another good idea although I don't think this will work as well for my
purpose.
Thanks again,
Drew
--
Visit The Alchemist's Warehouse
Magic Tricks, DVDs, Videos, Books, & More!
http://www.alchemistswarehouse.com
More information about the freebsd-questions
mailing list