PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : find mit cut und exec



ralle2k
31.07.08, 11:30
Hallo Jungs,

ich könnte Unterstützung bei einem Befehl gebrauchen.

Ich möchte mit einem find nach verzeichnissen suchen und mit den Verzeichnisnamen weiterarbeiten.

mit diesem befehl bekomme ich meine Verzeichnisnamen:
find /xxx/xxx/xxx/xxx/xxx/xxx/ -maxdepth 1 -type d |cut -d "/" -f8

diese Namen möchte ich als $1 an ein script weitergeben.
-exec script.sh $1 {} ; (geht nicht, weil er noch im cut Befehl steckt)

Jemand ne Idee?

Cheers

marce
31.07.08, 11:33
basename oder dirname sind vermutlich sinnvoller als cut.

ansonsten - for-Schleife drumrum und alles wird gut.

ralle2k
31.07.08, 11:45
Danke, ich glaube mit ner for Schleife würde es gehen;



var=`find /opt/epom/domdata/epom/print/usr/ -maxdepth 1 -type d |cut -d "/" -f8`
for i in $var; do script $i; done


aber mein dummes script fragt das hier ab.



if [ -a $1 ] ; then
echo "script" $1 #debug
echo "Parameter angeben. Usage: script <user_name>"
exit 1
fi


Damit lande ich aber irgendwie im "then" zweig

marce
31.07.08, 11:50
(1) mit code-Tags wird das hier lesbar. Bitte ändern und von nun an verwenden.
(2) man test sagt, daß -a gerne zwei wahre Ausdrücke hätte...

ralle2k
31.07.08, 13:03
Hast recht, hab



if [ -a $1 ] ; then
echo "script" $1 #debug
echo "Parameter angeben. Usage: script <user_name>"
exit 1
fi


gegen



if [ -z $1 ] ; then
echo "script" $1 #debug
echo "Parameter angeben. Usage: script <user_name>"
exit 1
fi


getauscht. Jetzt gehts

Danke

HirschHeisseIch
31.07.08, 13:14
find /opt/epom/domdata/epom/print/usr/ -maxdepth 1 -type d -exec script $(dirname \{\}) \;
;)

marce
31.07.08, 13:15
aber er will dirname doch nicht verwenden :-)

HirschHeisseIch
31.07.08, 13:22
Ich find den Einzeiler aber schöner. :)

ralle2k
31.07.08, 14:56
Ja so ein Einzeiler wäre schön gewesen, aber leider steigt da mein script aus,
weil dort setfacl aufgerufen wird und er dort wohl nicht mit dirname zurecht kommt.