On 14 dec 2005, at 05:44, user wrote:
I always do loops in /bin/sh like this:
for f in `cat file` ; do rm -rf $f ; done
Easy. I like doing it like this.
The problem is, when I am dealing with an input list that has multiple
words per line, this chops it up and treats every word as a new
line...
For instance, lets say I have a file full of filenames, like this:
# cat file
10,000 Maniacs MTV Unplugged - 01 - These Are Days.mp3
10,000 Maniacs MTV Unplugged - 02 - Eat For Two.mp3
10,000 Maniacs MTV Unplugged - 03 - Candy Everybody Wants.mp3
and I try to use the above loop on it, it thinks that every word is
a line
... the above loop will attempt to delete the following files:
10,000
Maniacs
MTV
Unplugged
-
01
-
These
(and so on)
Even if I quote the variable $f, like:
for f in `cat file` ; do rm -rf "$f" ; done
it still does the same thing.
-----
So my question is, what is a nice simple way to loop in the shell, as
close to what I am doing above as possible, that does not have this
problem ? Should I just be using something other than `cat` ? Or
what ?
THanks.
You can also try to store "cat file" into a variable:
#!/bin/sh
V=`cat file`
for f in $V ; do rm -rf $f ; done
Arno
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"