Elemente aus Find auslesen

25/01/2009 - 14:57 von Michael Peltzer | Report spam
Hallo Experten,
ich benötige bitte wieder eure Hilfe.
Ich schaffe es nicht, dass ich aus einer find-Abfrage die einzelnen
Elemente auslese. Wenn ich das in der folgenden for schleife versuche, dann
werden die gesamte Liste ausgegeben. D.h. echo $j und echo $liste geben
beidesmal das selbe Ergebnis.

D1="`pwd`"
liste=`find "$D1" -iname '*.rar'`
for j in "$liste"
do
echo "$j"
echo "$liste"
if [ -n "$liste" ]; then
 

Lesen sie die antworten

#1 Sven Mascheck
25/01/2009 - 15:24 | Warnen spam
Michael Peltzer wrote:

Ich schaffe es nicht, dass ich aus einer find-Abfrage die einzelnen
Elemente auslese.

liste=`find "$D1" -iname '*.rar'`
for j in "$liste"



Beim Iterieren über das Ergebnis einer command substitution ist
Vorsicht bzgl. Wihtespaces geboten (nochmaliges word splitting).

Auch für obiges empfiehlt sich die hàufig sehr nützliche, direkte
Kombination aus "find -exec +" und Shell (1. robust, 2. flexibel):

find [...] -exec $SHELL -c '
for j
do
[...] cmd "$j"
done
' find-sh {} +

Nicht vergessen: wenn mehr Argumente als ARG_MAX vorliegen,
wird diese Shell mehrmals aufgerufen.

Ähnliche fragen