Re: Dateinamen mit Leerzeichen korrekt bearbeiten
[EMAIL PROTECTED] (Heike C. Zimmerer) writes: > Juergen Salk <[EMAIL PROTECTED]> writes: > for datei in $verzeichnis/* $verzeichnis/.* > > Ja, stimmt. Was wenig daran ändert, dass dein Vorschlag bei > Leerzeichen in Dateinamen ungeeignet ist. Da lag ich falsch. Ich hatte nicht gesehen, dass die beiden Argumente keine Argumente mehr für ein ls in Backticks sind. Dein Vorschlag ist geeignet und ich habe mich getäuscht. Gruß, Heike -- 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: Dateinamen mit Leerzeichen korrekt bearbeiten
Heike C. Zimmerer <[EMAIL PROTECTED]> wrote: for datei in $verzeichnis/* $verzeichnis/.* >> >>> Das wird nichts. "$verzeichnis/.*" schliesst alles, was mit ".." >>> anfämgt ein, geht also ins Parent. >> >> Vielleicht solltest Du es mal ausprobieren, bevor Du solche >> gewagten Thesen aufstellst. > > Ja, stimmt. Was wenig daran ändert, dass dein Vorschlag bei > Leerzeichen in Dateinamen ungeeignet ist. *Seufz* Liebes Heikilein, probiere es doch endlich einmal aus. Vielleicht verstehst Du es dann ... J. -- 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: Dateinamen mit Leerzeichen korrekt bearbeiten
Juergen Salk <[EMAIL PROTECTED]> writes: > Heike C. Zimmerer <[EMAIL PROTECTED]> wrote: > >>> for datei in $verzeichnis/* $verzeichnis/.* > >> Das wird nichts. "$verzeichnis/.*" schliesst alles, was mit ".." >> anfämgt ein, geht also ins Parent. > > Vielleicht solltest Du es mal ausprobieren, bevor Du solche > gewagten Thesen aufstellst. > > "$verzeichnis/.*" geht nirgendwo hin sondern expandiert > lediglich auch zu "$verzeichnis/..", was aber wegen des > folgenden "[ -r "$datei" ... ]" völlig irrelevant ist, > weil ".." keine reguläre Datei darstellt. Ja, stimmt. Was wenig daran ändert, dass dein Vorschlag bei Leerzeichen in Dateinamen ungeeignet ist. Gruß, Heike -- 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: Dateinamen mit Leerzeichen korrekt bearbeiten
Heike C. Zimmerer <[EMAIL PROTECTED]> wrote: >> for datei in $verzeichnis/* $verzeichnis/.* > Das wird nichts. "$verzeichnis/.*" schliesst alles, was mit ".." > anfämgt ein, geht also ins Parent. Vielleicht solltest Du es mal ausprobieren, bevor Du solche gewagten Thesen aufstellst. "$verzeichnis/.*" geht nirgendwo hin sondern expandiert lediglich auch zu "$verzeichnis/..", was aber wegen des folgenden "[ -r "$datei" ... ]" völlig irrelevant ist, weil ".." keine reguläre Datei darstellt. J. -- 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: Dateinamen mit Leerzeichen korrekt bearbeiten
Juergen Salk <[EMAIL PROTECTED]> writes: > for datei in $verzeichnis/* $verzeichnis/.* Nachtrag zu meinem anderen Artikel: dem OP ging es um Leerzeichen. Also: OLDIFS="$IFS" IFS=" " for i in $(find . -maxdepth 1 -type f); do # Mach irgendwas mit "$i" done IFS="$OLDIFS" hat Probleme mit Newlines in Dateinamen und sieht grauslig aus, wird aber oft verwendet. find . -maxdepth 1 -type f | while read i; do # Mach irgendwas mit "$i" done sieht schon schöner aus, hat aber ebenfalls Probleme mit Newlines. Beidesmal muss natürlich $i in Anführungszeichen gesetzt werden, wenn es verwendet werden soll. find . -maxdepth 1 -type f -exec tuwas mit \{} \; ist sauber, schränkt aber "tuwas" ein, und find . -maxdepth 1 -type f -print 0 | xarg -0 tuwas schränkt "tuwas" weiter ein. Das fällt mir so auf Anhieb an Möglichkeiten ein. Gruß, Heike -- 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: Dateinamen mit Leerzeichen korrekt bearbeiten
Juergen Salk <[EMAIL PROTECTED]> hat: >> for datei in `ls -A $verzeichnis` ersetzt durch: > for datei in $verzeichnis/* $verzeichnis/.* Das wird nichts. "$verzeichnis/.*" schliesst alles, was mit ".." anfämgt ein, geht also ins Parent. for datei in $(find . -maxdepth 0) wäre eine Alternative. Gruß, Heike -- 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: Dateinamen mit Leerzeichen korrekt bearbeiten
On Mon, Apr 19, 2004 at 01:51:22PM +0200, Thilo Engelbracht wrote: > Am 19.04.2004 um 12:11 Uhr schrieb B. Venthur <[EMAIL PROTECTED]>: > > > > From: Thilo Engelbracht > > > > > > Hallo Liste! > > > [...] > > > Wie muß ich (Newbie!) mein Skript ändern, dass alle Dateien in dem > > > Verzeichnis beachtet werden? > > > > Hi Thilo, > > > > ich glaube du musst einfach den Term in Anführungsstrichen setzen: > > > > "$lustigevariablemitleerzeichen" > > Habe ich versucht - leider ohne Erfolg. > > Zwei Punkte möchte ich gerne erreichen: > 1.) Die Namen der Files, die in dem Verzeichnis enthalten sind, können > Leerzeichen enthalten. > 2.) Unter Umständen können die Dateinamen sogar mit einem "." anfangen. > Auch diese Files sollen bearbeitet werden. > > Mein Skript habe ich geändert und den "basename"-Befehl eingebaut. Auch > dies führt leider nicht zum gewünschten Ergebnis. Eine Datei "datei 1" > heisst nach dem "basename"-Kommando nur noch "datei"... > > Hat jemand noch eine Idee? Man kann sowas oft sehr schön mit find '-print0' und xargs lösen. Wenn es aber bash sein soll: ls -A $PATH | while read a do echo "$a" done (sollte funktionieren, ist aber untested...) Gruss Grisu -- Michael Bramer -- http://www.feuerwehr.kreuzau.de/wiki/ PGP: finger [EMAIL PROTECTED] -- Linux Sysadmin -- Use Debian Linux "Manchmal ist es besser zu schweigen und die anderen glauben zu lassen, man sei ein Narr, als zu reden und die letzten Zweifel zu beseitigen." (L. Simpson) -- 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: Dateinamen mit Leerzeichen korrekt bearbeiten
Hallo, Am Monday, den 19. April 2004 11:24:31 schrieb Thilo Engelbracht: > Heute habe ich mir ein kleines Skript erstellt (Beispiel): > > #!/bin/bash > > verzeichnis="/home/thilo/Data" > > for datei in `ls -A $verzeichnis` > do > if [ -f $verzeichnis/$datei -a -r $verzeichnis/$datei ] > then > # hier wird die Datei weiterverarbeitet > # ... > # ... > fi > done > > > Anschliessend habe ich zu Testzwecken einige Dateien angelegt: > > echo "abc" > /home/thilo/Data/datei-1 > echo "xyz" > /home/thilo/Data/datei-2 > echo "012" > "/home/thilo/Data/datei 3" > echo "789" > "/home/thilo/Data/datei 4" > > > Mein Problem: Es werden nur die Dateien verarbeitet, die kein > Leerzeichen enthalten. Alternativ zu den diversen Lösungen geht's auch mit while/read: ls -A $verzeichnis | while read datei; do ... done und in der Schleife immer Anführungszeichen um $datei ("$datei"). MfG bmg -- "Des is völlig wurscht, was heut beschlos- | M G Berberich sen wird: I bin sowieso dagegn!" | [EMAIL PROTECTED] (SPD-Stadtrat Kurt Schindler; Regensburg) | www.fmi.uni-passau.de/~berberic -- 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: Dateinamen mit Leerzeichen korrekt bearbeiten
Am Mo, den 19.04.2004 schrieb Thilo Engelbracht um 11:24: > Hallo Liste! > > Heute habe ich mir ein kleines Skript erstellt (Beispiel): > > #!/bin/bash > > verzeichnis="/home/thilo/Data" > > for datei in `ls -A $verzeichnis` > do > if [ -f $verzeichnis/$datei -a -r $verzeichnis/$datei ] > then > # hier wird die Datei weiterverarbeitet > # ... > # ... > fi > done > > > Anschliessend habe ich zu Testzwecken einige Dateien angelegt: > > echo "abc" > /home/thilo/Data/datei-1 > echo "xyz" > /home/thilo/Data/datei-2 > echo "012" > "/home/thilo/Data/datei 3" > echo "789" > "/home/thilo/Data/datei 4" > > > Mein Problem: Es werden nur die Dateien verarbeitet, die kein > Leerzeichen enthalten. > > Wie muß ich (Newbie!) mein Skript ändern, dass alle Dateien in dem > Verzeichnis beachtet werden? > Hallo Thilo, du musst vor der Schleife folgendes einfügen: IFS=" " Damit wird als Trennzeichen Newline verwendet (mehr siehe man bash). Gruss -- Peter Hoffmann <[EMAIL PROTECTED]>
Re: Dateinamen mit Leerzeichen korrekt bearbeiten
Am 19.04.2004 um 12:11 Uhr schrieb B. Venthur <[EMAIL PROTECTED]>: > > From: Thilo Engelbracht > > > > Hallo Liste! > > [...] > > Wie muß ich (Newbie!) mein Skript ändern, dass alle Dateien in dem > > Verzeichnis beachtet werden? > > Hi Thilo, > > ich glaube du musst einfach den Term in Anführungsstrichen setzen: > > "$lustigevariablemitleerzeichen" Habe ich versucht - leider ohne Erfolg. Zwei Punkte möchte ich gerne erreichen: 1.) Die Namen der Files, die in dem Verzeichnis enthalten sind, können Leerzeichen enthalten. 2.) Unter Umständen können die Dateinamen sogar mit einem "." anfangen. Auch diese Files sollen bearbeitet werden. Mein Skript habe ich geändert und den "basename"-Befehl eingebaut. Auch dies führt leider nicht zum gewünschten Ergebnis. Eine Datei "datei 1" heisst nach dem "basename"-Kommando nur noch "datei"... Hat jemand noch eine Idee? Vielen Dank für Eure Mühe! Mit freundlichen Grüßen, Thilo -- Registered Linux user #348074 with the Linux counter http://counter.li.org -- 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: Dateinamen mit Leerzeichen korrekt bearbeiten
Thilo Engelbracht <[EMAIL PROTECTED]> wrote: > #!/bin/bash > > verzeichnis="/home/thilo/Data" > > for datei in `ls -A $verzeichnis` > do > if [ -f $verzeichnis/$datei -a -r $verzeichnis/$datei ] > then > # hier wird die Datei weiterverarbeitet > # ... > # ... > fi > done > > > Mein Problem: Es werden nur die Dateien verarbeitet, die kein > Leerzeichen enthalten. #!/bin/bash verzeichnis="/home/thilo/Data" for datei in $verzeichnis/* $verzeichnis/.* do if [ -f "$datei" -a -r "$datei" ] then echo "$datei" fi done Beste Gruesse - Juergen -- GPG A997BA7A | 87FC DA31 5F00 C885 0DC3 E28F BD0D 4B33 A997 BA7A -- 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: Dateinamen mit Leerzeichen korrekt bearbeiten
> From: Thilo Engelbracht [mailto:[EMAIL PROTECTED] > Sent: Monday, April 19, 2004 11:25 AM > To: Debian User German > Subject: Dateinamen mit Leerzeichen korrekt bearbeiten > > Hallo Liste! > [...] > Wie muß ich (Newbie!) mein Skript ändern, dass alle Dateien in dem > Verzeichnis beachtet werden? Hi Thilo, ich glaube du musst einfach den Term in Anführungsstrichen setzen: "$lustigevariablemitleerzeichen" > Vielen Dank für Eure Mühe! Nich dafür ;) > > Mit freundlichen Grüßen, > > Thilo > Bastian
Dateinamen mit Leerzeichen korrekt bearbeiten
Hallo Liste! Heute habe ich mir ein kleines Skript erstellt (Beispiel): #!/bin/bash verzeichnis="/home/thilo/Data" for datei in `ls -A $verzeichnis` do if [ -f $verzeichnis/$datei -a -r $verzeichnis/$datei ] then # hier wird die Datei weiterverarbeitet # ... # ... fi done Anschliessend habe ich zu Testzwecken einige Dateien angelegt: echo "abc" > /home/thilo/Data/datei-1 echo "xyz" > /home/thilo/Data/datei-2 echo "012" > "/home/thilo/Data/datei 3" echo "789" > "/home/thilo/Data/datei 4" Mein Problem: Es werden nur die Dateien verarbeitet, die kein Leerzeichen enthalten. Wie muß ich (Newbie!) mein Skript ändern, dass alle Dateien in dem Verzeichnis beachtet werden? Vielen Dank für Eure Mühe! Mit freundlichen Grüßen, Thilo -- Registered Linux user #348074 with the Linux counter http://counter.li.org -- 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)