Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit Leerzeichen in Verzeichnissen.
Holger Specht
20-06-2006, 08:27
Ich möchte in einem Bash-Script alle Unerverzeichnisse nacheinander abarbeiten.
Dazu habe ich mir überlegt, die Verzeichnisse mit "find * -maxdepth 0 -type d" zu bestimmen. Funktioniert soweit auch:
$ find * -maxdepth 0 -type d
APPDATA
My Documents
test
Wenn das jetzt aber in eine for-Schleife reinpacke:
for i in `find * -maxdepth 0 -type d`; do
echo $i
done
Dann wird aus dem "My Documents" ein "My" und ein "Documents":
$ for i in `find * -maxdepth 0 -type d`; do
> echo $i
> done
APPDATA
My
Documents
test
Wie vehindere ich, daß Verzeichnisse mit Leerzeichen auseinander dividiert werden?
Gruß
Holger
Ev geht es besser, wenn du statt find ein
ls -1
nimmst.
MfG Bischi
Holger Specht
20-06-2006, 08:48
Das hilft mir leider nicht. Zum einen will ich ja nur die Verzeichnisse und zum anderen werden Leerzeichen in der For-Schleife immernoch als Trenner betrachtet.
Aus "My Documents" wird auch mit ls -1 ein "My" und ein "Documents".
ls -d -1
und das ganze dann _zeilenweise_ einlesen.
MfG Bischi
Holger Specht
20-06-2006, 09:05
ls -d -1
und das ganze dann _zeilenweise_ einlesen.
MfG Bischi
Ok. Danke. Nur dieses zeilenweise bereitet mir Probleme. Wie genau stelle ich das an?
Gruß und Danke für die Mühe
Holger
Ok - so stark bin ich im Bash-Scripten auch nicht...
Neuer Vorschlag:
ls -p -m
Alle Einträge werden durch , getrennt. Jedes Verzeichnis hat als letztes Zeichen ein /.
Vielleicht hilft das weiter....
MfG Bischi
Holger Specht
20-06-2006, 09:44
Nein, leider nicht, weil das Leerzeichen nach wie vor als Separator betrachtet wird.
Vielleicht hat ja noch jemand eine Idee.
Gruß
Holger
Ja, nimm das NULL-Zeichen als Seperator (Option: -print0). xargs und andere Tools können dann damit auch umgehen. Einfach mal in die entsprechende man-Page schauen.
Code: find ./ -type d -maxdepth 0 -exec echo "{}" \;
Oder: find ./ -type d -maxdepth 0 -print0 | xargs -0 …
Pingu
Romanday
21-06-2006, 00:44
Ja, nimm das NULL-Zeichen als Seperator (Option: -print0). xargs und andere Tools können dann damit auch umgehen.
Pingu
Gute Idee.
Die Probleme treten erneut auf, wenn er mal einen crazy FTP
Server durchsuchen möchte, oder die ganze Sonderzeichen Pallette
in Verzeichnis oder Dateinamen vorkommen.
In solchen Fällen sind Shellscripte sehr arbeitsaufwendig bis ungeeignet.
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.