Re: Leerzeichen in Dateinamen
On Sunday 10 October 2004 20:30, Christoph Conrad wrote: Hi Tilo, find . -name '*.jpg' -print | while read file; do echo $file; done while: Expression Syntax. Seltsam... Ich verwende GNU bash, version 2.05b.0(1)-release (i386-pc-linux-gnu) Herzliche Grüße, Christoph Wirklich seltsam, war wohl ein BB (Brain Bug ;-), kanns nicht reproduzieren... Grüße, Tilo
Re: Leerzeichen in Dateinamen
Christoph Conrad [EMAIL PROTECTED] wrote: , | [EMAIL PROTECTED]/n touch 'eine datei.jpg' | [EMAIL PROTECTED]/n for i in `ls *.jpg`; do echo $i; done | eine | datei.jpg ` Was soll eigentlich das ls? , | [EMAIL PROTECTED]:~/jpgt]$ touch 'eine datei.jpg' | [EMAIL PROTECTED]:~/jpgt]$ for i in *.jpg; do echo $i; done | eine datei.jpg | [EMAIL PROTECTED]:~/jpgt]$ ` R 'warum einfach...' ob -- In C we had to code our own bugs. In C++ we can inherit them. -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Leerzeichen in Dateinamen
Hi Robert, for i in *.jpg; do echo $i; done Boah... R 'warum einfach...' ob Das war z einfach ;-) Herzliche Grüße, Christoph -- [...] denn es ist die Sprache, die den Strom der Zeit anhält. Es existiert keine Statik, es gibt keine Endgültigkeit des Anfangs und des Endes. Heinz von Foerster -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Leerzeichen in Dateinamen
Hallo, ich habe ein kleines Problem mit Leerzeichen: wenn ich z.B. eine for-Schleife brauche for i in `ls *.jpg` ; do echo $i ; done klappt das wunderbar mit der Zeile, nur nicht bei Dateinamen mit Leerzeichen, da jedes Leerzeichen als Trennzeichen gewertet wird. Was kann ich da machen? -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Leerzeichen in Dateinamen
Hi Dirk, for i in `ls *.jpg` ; do echo $i ; done Bisschen anders, aber sinngemäß: find . -name '*.jpg' -print | while read file; do echo $file; done Herzliche Grüße, Christoph -- [...] denn es ist die Sprache, die den Strom der Zeit anhält. Es existiert keine Statik, es gibt keine Endgültigkeit des Anfangs und des Endes. Heinz von Foerster -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Leerzeichen in Dateinamen
Am Samstag, 9. Oktober 2004 21:45 schrieb Dirk Richter: for i in `ls *.jpg` ; do echo $i ; done Wie wärs mit for i in *.jpg ; do echo $i ; done /tmp$ ls *.jpg bar.jpg foo bar.jpg foo.jpg /tmp$ for i in *.jpg ; do echo $i ; done bar.jpg foo bar.jpg foo.jpg Gruß, Uwe -- Keine Angst vor Windows. Ungeladen ist es völlig harmlos. -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Leerzeichen in Dateinamen
Am Samstag, 9. Oktober 2004 23:11 schrieb Uwe Malzahn: Am Samstag, 9. Oktober 2004 21:45 schrieb Dirk Richter: for i in `ls *.jpg` ; do echo $i ; done [...] for i in *.jpg ; do echo $i ; done /tmp$ ls *.jpg bar.jpg foo bar.jpg foo.jpg /tmp$ for i in *.jpg ; do echo $i ; done bar.jpg foo bar.jpg foo.jpg Das ist nicht das Gleiche: [EMAIL PROTECTED]:~/tmp/leer touch a b c.jpg a b c.jpg [EMAIL PROTECTED]:~/tmp/leer ls -l insgesamt 0 -rw-r--r-- 1 jan users 0 2004-10-10 01:29 a b c.jpg -rw-r--r-- 1 jan users 0 2004-10-10 01:29 a b c.jpg [EMAIL PROTECTED]:~/tmp/leer for i in *.JPG; do echo $i; done *.JPG [EMAIL PROTECTED]:~/tmp/leer for i in `ls *.JPG`; do echo $i; done /bin/ls: *.JPG: Datei oder Verzeichnis nicht gefunden Und noch was: Vorsicht mit ungequoteten Argumenten: [EMAIL PROTECTED]:~/tmp/leer for i in *.jpg; do echo $i; done a b c.jpg a b c.jpg [EMAIL PROTECTED]:~/tmp/leer for i in *.jpg; do echo $i; done a b c.jpg a b c.jpg Mit folgender Variante klappt es auch mit Leerzeichen: [EMAIL PROTECTED]:~/tmp/leer ls *.jpg | while read i; do echo $i; done a b c.jpg a b c.jpg [EMAIL PROTECTED]:~/tmp/leer ls *.JPG | while read i; do echo $i; done /bin/ls: *.JPG: Datei oder Verzeichnis nicht gefunden Der Nachteil ist hier, dass die Schleife in einer Subshell abläuft (also innerhalb der Schleife gesetzte Variablen aussen nicht sichtbar sind): [EMAIL PROTECTED]:~/tmp/leer f=xyz [EMAIL PROTECTED]:~/tmp/leer ls *.jpg | while read i; do f=$i; done [EMAIL PROTECTED]:~/tmp/leer echo $f xyz Will man das umgehen, dann greift man doch wieder auf die for-Schleife zurück und stellt in der Schleife sicher, dass es tatsächlich Dateien gibt: [EMAIL PROTECTED]:~/tmp/leer for i in *.JPG; do test -f $i || break; echo $i; done Jan P.S.: Die Intelligenz der for-Schleife ist nicht kompatibel zu anderen Shells. -- Linux-Quickies: http://www.jan-trippler.de PingoS: http://www.pingos.org
Re: Leerzeichen in Dateinamen
Am Samstag, 9. Oktober 2004 22:59 schrieb Christoph Conrad: for i in `ls *.jpg` ; do echo $i ; done Bisschen anders, aber sinngemäß: find . -name '*.jpg' -print | while read file; do echo $file; done Nein, das ist nicht sinngemäß. find sucht rekursiv, findet also auch .jpg-Dateien in Unterverzeichnissen. Um sinngemäß zu bleiben, sollte zumindest noch ein -maxdepth 1 ergänzt werden: find . -name '*.jpg' -maxdepth 1 -print | while read file; do echo $file; done Und mit der while-Schleife brauchst Du den find gar nicht. Nimm stattdessen den ls, dann hast Du das gleiche Ergebnis. Jan -- Linux-Quickies: http://www.jan-trippler.de PingoS: http://www.pingos.org
Re: Bill Gs Rache - Leerzeichen in Dateinamen
On Tue, 20 Aug 2002 16:24:18 +0200 Dieter Schuster [EMAIL PROTECTED] wrote: Tach auch! Am Mon, den 19 August 2002, schrieb Dirk Haage: Wie findet man eigentlich solche Programme, wenn man nicht weiss, wonach man suchen muss? In der Regel nur sehr schwer :- Das hab ich auch schon gemerkt. Die vorgeschlagenen Vorgehensweisen sind schonmal ein Ansatz (wenn auch kein unbekannter) und wenn nichts mehr hilft: Hier findet sich immer jemand, der einem das richtige Progrämmchen nennen kann. Vielen Dank an alle /dirk -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Bill Gs Rache - Leerzeichen in Dateinamen
Dirk Haage [EMAIL PROTECTED] writes: Ah ja. Hab mir grad mal die Manpage zu tr angeguckt, sehr praktisch. Ich dachte schon, ich müsste bei Zeiten mal wild mit sed rumwerkeln. Wie findet man eigentlich solche Programme, wenn man nicht weiss, wonach man suchen muss? Indem man einfach das Manual zu einem Programm ansieht, das vielleicht ungefähr, aber nicht ganz genau das richtige ist. In diesem Fall hast Du ja sed schon selbst genannt. Da siehst Du dann ganz unten in den Abschnitt SEE ALSO: SEE ALSO awk(1), ed(1), expr(1), emacs(1), perl(1), tr(1), vi(1), regex(7) [well, one ought to be written... XXX], sed.info, any of various books on sed, the sed FAQ (http://www.wollery.demon.co.uk/sedtut10.txt, http://www.ptug.org/sed/sedfaq.htm). Wenn man dann nicht schon von selbst drauf kommt, was davon besser geeignet ist, kann man ja schnell mit man die genannten Programme ansehen. Ist etwas mühselig, aber man lernt garantiert etwas dabei, und beim nächsten Mal erinnerst Du Dich vielleicht auch an Tools, die Du diesmal nicht gebrauchen konntest, aber trotzdem kennengelernt hast. [x] ulf -- I heard if you play the Windows-XP-CD backwards, you get a satanic message. That's nothing, if you play it forward, it installs Windows XP -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Bill Gs Rache - Leerzeichen in Dateinamen
Vielen Dank für die reichhaltigen Lösungen. Gut viele kennen zu lernen. Ich hab find --exec gewählt, hat prima funktioniert. Und zu wissen wie das Ersetzen von Leerzeichen durch _ ohne sed geht ist natülich auch hilfreich. VIELEN DANK für die Mühen. Stefan Am Montag, 19. August 2002 07:39 schrieb Stefan Keul: Hallo, ich habe hässlicher Weise Datei- und Verzeichnisnamen mit Leerzeichen. Ich möchte zB einfach alle Verzeichnisse chmod +x machen. Was ich so probiert habe: chmod +x $(find . -type d ) chmod +x $(find . -type d -print0) chmod +x $(find . -type d -print) chmod +x $(find . -type d -printf '%f'\n) chmod +x $(find . -type d -printf \%f\\n) egal was ich mache chmod zerlegt mir den Dateinamen immer an den Leerzeichen. Was tun? Stefan -- (° Stefan Keul [EMAIL PROTECTED] -(°) -(°) //\ Exchange Servers? /\\ /\\ V_/_ Surely exchange them! _\_V _\_V -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Bill Gs Rache - Leerzeichen in Dateinamen
Tach auch! Am Mon, den 19 August 2002, schrieb Dirk Haage: Wie findet man eigentlich solche Programme, wenn man nicht weiss, wonach man suchen muss? In der Regel nur sehr schwer :- 'apropos' kann helfen. Dieter -- Registrierter Linux Benutzer #186360 - GnuPG Key-ID: FDE465C9 Bevorzugt verschluesselte eMails. Nichts ist wie es scheint, alles ist erlaubt! msg16212/pgp0.pgp Description: PGP signature
Re: Bill Gs Rache - Leerzeichen in Dateinamen
--- Stefan Keul [EMAIL PROTECTED] schrieb: Hallo, ich habe hässlicher Weise Datei- und Verzeichnisnamen mit Leerzeichen. Ich möchte zB einfach alle Verzeichnisse chmod +x machen. Was ich so probiert habe: Dies sollte klappen: find . -type d -exec chmod +x {} \; Gruß Rüdiger -- Kaum macht man's richtig, schon geit dat! __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Möchten Sie mit einem Gruß antworten? http://grusskarten.yahoo.de -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Bill Gs Rache - Leerzeichen in Dateinamen
Hallo, chmod +x $(find . -type d ) chmod +x $(find . -type d -print0) Probier mal find . -type d -print0 | xargs -0 chmod +x (oder so ähnlich - bin bei der arbeit, da kann ich es leider nicht ausprobieren) Roman -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Bill Gs Rache - Leerzeichen in Dateinamen
Stefan Keul [EMAIL PROTECTED] writes: ich habe hässlicher Weise Datei- und Verzeichnisnamen mit Leerzeichen. Ich möchte zB einfach alle Verzeichnisse chmod +x machen. Was ich so probiert habe: chmod +x $(find . -type d ) chmod +x $(find . -type d -print0) chmod +x $(find . -type d -print) chmod +x $(find . -type d -printf '%f'\n) chmod +x $(find . -type d -printf \%f\\n) find . -type d -exec chmod +x \{} \; find . -type d -print0 | xargs -0 chmod +x HTH Heike -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Bill Gs Rache - Leerzeichen in Dateinamen
+ Stefan Keul [EMAIL PROTECTED]: egal was ich mache chmod zerlegt mir den Dateinamen immer an den Leerzeichen. Was tun? find . -type d -exec chmod -x {} \; Kai -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
RE: Bill Gs Rache - Leerzeichen in Dateinamen
Moin Stefan, probier mal find . -type d -print0 | xargs -0 chmod +x Das Ergebnis der Suche wird hier nicht von der Shell ausgewertet. xargs erhaelt von find direkt die null-terminierten Dateinamen und gibt diese (nicht mehr null-terminiert) an den nachfolgenden Befehl weiter (hierfuer ist die Option -0 bei xargs zustaendig). Ciao, Peter -Original Message- From: Stefan Keul [mailto:[EMAIL PROTECTED]] Sent: Monday, August 19, 2002 7:39 AM To: [EMAIL PROTECTED] Subject: Bill Gs Rache - Leerzeichen in Dateinamen Hallo, ich habe hässlicher Weise Datei- und Verzeichnisnamen mit Leerzeichen. Ich möchte zB einfach alle Verzeichnisse chmod +x machen. Was ich so probiert habe: chmod +x $(find . -type d ) chmod +x $(find . -type d -print0) chmod +x $(find . -type d -print) chmod +x $(find . -type d -printf '%f'\n) chmod +x $(find . -type d -printf \%f\\n) egal was ich mache chmod zerlegt mir den Dateinamen immer an den Leerzeichen. Was tun? Stefan -- (° Stefan Keul [EMAIL PROTECTED] -(°) -(°) //\ Exchange Server? /\\ /\\ V_/_ Surely exchange them! _\_V _\_V -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl) -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Bill Gs Rache - Leerzeichen in Dateinamen
On Mon, Aug 19, 2002 at 07:39:22AM +0200, Stefan Keul wrote: ich habe hässlicher Weise Datei- und Verzeichnisnamen mit Leerzeichen. Ich möchte zB einfach alle Verzeichnisse chmod +x machen. Was ich so probiert habe: chmod -R +X . Wär' das was? (- man chmod) Oder find . -type d -print0 | xargs -0 chmod +x (ungetestet) Best regards from Dresden Viele Gruesse aus Dresden Heiko Schlittermann -- SCHLITTERMANN - internet unix support - a href=http://debian.schlittermann.de/; Debian 3.x CD /a Heiko Schlittermann HS12-RIPE finger:[EMAIL PROTECTED] - pgp: A1 7D F6 7B 69 73 48 35 E1 DE 21 A7 A8 9A 77 92 --- gpg: CC19 0FE2 073B AEA1 5C11 37DD 347D 73DC FF56 BA6D - -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Bill Gs Rache - Leerzeichen in Dateinamen
On Mon, 19 Aug 2002 07:39:22 +0200 Stefan Keul [EMAIL PROTECTED] wrote: Hallo, ich habe hässlicher Weise Datei- und Verzeichnisnamen mit Leerzeichen. egal was ich mache chmod zerlegt mir den Dateinamen immer an den Leerzeichen. Was tun? Das haben ja schon alle geschrieben. Was mich mal interessierten würde ist, wie man die Leerzeichen da möglichst einfach wieder rausbekommt, also z.B. gegen _ austauscht. Wenn jemand ne Idee hat... /dirk -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Bill Gs Rache - Leerzeichen in Dateinamen
Das haben ja schon alle geschrieben. Was mich mal interessierten würde ist, wie man die Leerzeichen da möglichst einfach wieder rausbekommt, also z.B. gegen _ austauscht. for i in deine_dateien do mv $i `echo $i | tr ' ' '_'` done Zusätzlich eine Prüfung, ob die Zieldatei existiert, schadet natürlich nicht. ;-) Gruß Rüdiger -- Kaum macht man's richtig, schon geit dat! __ Gesendet von Yahoo! Mail - http://mail.yahoo.de Möchten Sie mit einem Gruß antworten? http://grusskarten.yahoo.de -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Bill Gs Rache - Leerzeichen in Dateinamen
Dirk Haage [EMAIL PROTECTED] writes: Was mich mal interessierten würde ist, wie man die Leerzeichen da möglichst einfach wieder rausbekommt, also z.B. gegen _ austauscht. find . -name '* *' | while read bla; do mv $bla `echo $bla|tr \ _`; done [x] ulf -- Artificial Intelligence is no match for Natural Stupidity. -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Bill Gs Rache - Leerzeichen in Dateinamen
Hallo Dirk, Dirk Haage wrote: On Mon, 19 Aug 2002 07:39:22 +0200 Stefan Keul [EMAIL PROTECTED] wrote: Hallo, ich habe hässlicher Weise Datei- und Verzeichnisnamen mit Leerzeichen. egal was ich mache chmod zerlegt mir den Dateinamen immer an den Leerzeichen. Was tun? Das haben ja schon alle geschrieben. Was mich mal interessierten würde ist, wie man die Leerzeichen da möglichst einfach wieder rausbekommt, also z.B. gegen _ austauscht. man mmv Um ein Leerzeichen zu ersetzen: mmv * * #1_#2 Gruß, Martin -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Bill Gs Rache - Leerzeichen in Dateinamen
On Mon, 19 Aug 2002 18:40:40 +0200 Ulf Rompe [EMAIL PROTECTED] wrote: find . -name '* *' | while read bla; do mv $bla `echo $bla|tr \ _`; done Ah ja. Hab mir grad mal die Manpage zu tr angeguckt, sehr praktisch. Ich dachte schon, ich müsste bei Zeiten mal wild mit sed rumwerkeln. Wie findet man eigentlich solche Programme, wenn man nicht weiss, wonach man suchen muss? Vielen Dank an alle /dirk -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Bill Gs Rache - Leerzeichen in Dateinamen
Hallo, Dirk Haage [EMAIL PROTECTED] schrieb am Mon, 19 Aug 2002 18:57:46 +0200:: Wie findet man eigentlich solche Programme, wenn man nicht weiss, wonach man suchen muss? indem man sich eine ml oder newsgroup sucht ? Gruß, hans -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Bill Gs Rache - Leerzeichen in Dateinamen
On Monday 19 August 2002 18:57, Dirk Haage wrote: On Mon, 19 Aug 2002 18:40:40 +0200 Ulf Rompe [EMAIL PROTECTED] wrote: find . -name '* *' | while read bla; do mv $bla `echo $bla|tr \ _`; done Ah ja. Hab mir grad mal die Manpage zu tr angeguckt, sehr praktisch. Ich dachte schon, ich müsste bei Zeiten mal wild mit sed rumwerkeln. Wie findet man eigentlich solche Programme, wenn man nicht weiss, wonach man suchen muss? Zum Beispiel in Büchern, da findet sich fast alles :) Ellen Siever, Linux in a Nutshell, O'Reilly Verlag Nachschlagewerk und Referenz, mit alphabetischer Befehlsreferenz, vergleichbar den Manpages Michael Kofler, Linux - Inatallation, Konfiguration, Einrichtung, Addison Wesley Verlag Grundlagen, Lehrbuch im Sinne von lernen Tschüss, Thomas -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Bill Gs Rache - Leerzeichen in Dateinamen
Hallo, ich habe hässlicher Weise Datei- und Verzeichnisnamen mit Leerzeichen. Ich möchte zB einfach alle Verzeichnisse chmod +x machen. Was ich so probiert habe: chmod +x $(find . -type d ) chmod +x $(find . -type d -print0) chmod +x $(find . -type d -print) chmod +x $(find . -type d -printf '%f'\n) chmod +x $(find . -type d -printf \%f\\n) egal was ich mache chmod zerlegt mir den Dateinamen immer an den Leerzeichen. Was tun? Stefan -- (° Stefan Keul [EMAIL PROTECTED] -(°) -(°) //\ Exchange Server? /\\ /\\ V_/_ Surely exchange them! _\_V _\_V -- Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)