Hallo ! Ich suche eine Moeglichkeit mit Hilfe der Bash aus einem Dateinamen die 'Leerzeichen' zu entfernen. Schoenen Dank im Voraus Christian Augustat --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
On Sun, 16 Apr 2000, Christian Augustat wrote:
Ich suche eine Moeglichkeit mit Hilfe der Bash aus einem Dateinamen die 'Leerzeichen' zu entfernen.
mv "diese\ datei" diese_datei Mit freundlichen Grüßen, Joerg Henner. -- LinuxHaus Stuttgart | Tel.: +49 (7 11) 2 85 19 05 Jörg Henner und Adrian Reyer, Datentechnik GbR | D2: +49 (1 72) 7 35 31 09 | Fax: +49 (7 11) 5 78 06 92 Linux, Netzwerke, Webhosting & Support | http://lihas.de --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
On Sun, 16 Apr 2000, Joerg Henner wrote:
On Sun, 16 Apr 2000, Christian Augustat wrote:
Ich suche eine Moeglichkeit mit Hilfe der Bash aus einem Dateinamen die 'Leerzeichen' zu entfernen.
mv "diese\ datei" diese_datei Herzlichen Dank Jörg !
Ich jedoch habe ich mein Problem (scheinbar) nicht richtig deklariert: Ich lese mit einer "for" Schleife alle Dateien ein (*.???), diese Dateien enthalten leider Leerzeichen, wodurch die Weiterverarbeitung durch ein Konvertierungsprogramm fehlschlägt. Ich suche daher die Möglichkeit aus der Variable $filename die Leerzeichen zu entfernen oder zu ersetzen. Alles Gute und entschuldigt bitte ! Christian --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
On Sun, 16 Apr 2000, Christian Augustat wrote:
Ich jedoch habe ich mein Problem (scheinbar) nicht richtig deklariert: Ich lese mit einer "for" Schleife alle Dateien ein (*.???), diese Dateien enthalten leider Leerzeichen, wodurch die Weiterverarbeitung durch ein Konvertierungsprogramm fehlschlägt. Ich suche daher die Möglichkeit aus der Variable $filename die Leerzeichen zu entfernen oder zu ersetzen.
chau dir dazu mal in der bash manpage/doku (bashref.html ?) die befehle zu - test - eval etwas genauer an. das sollte dein problem lösen. ansonsten kannst du dir auch über eine zweistufige lösung (perl) eine lösung erarbeiten... Mit freundlichen Grüßen, Joerg Henner. -- LinuxHaus Stuttgart | Tel.: +49 (7 11) 2 85 19 05 Jörg Henner und Adrian Reyer, Datentechnik GbR | D2: +49 (1 72) 7 35 31 09 | Fax: +49 (7 11) 5 78 06 92 Linux, Netzwerke, Webhosting & Support | http://lihas.de --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Christian Augustat wrote:
On Sun, 16 Apr 2000, Joerg Henner wrote:
On Sun, 16 Apr 2000, Christian Augustat wrote:
Ich suche eine Moeglichkeit mit Hilfe der Bash aus einem Dateinamen die 'Leerzeichen' zu entfernen.
mv "diese\ datei" diese_datei Herzlichen Dank Jörg !
Ich jedoch habe ich mein Problem (scheinbar) nicht richtig deklariert: Ich lese mit einer "for" Schleife alle Dateien ein (*.???), diese Dateien enthalten leider Leerzeichen, wodurch die Weiterverarbeitung durch ein Konvertierungsprogramm fehlschlägt. Ich suche daher die Möglichkeit aus der Variable $filename die Leerzeichen zu entfernen oder zu ersetzen.
Hi Christian, filename=`echo $filename | sed s/[" "*]/_/g` ollte dein Problem loesen, oder? Hier werden Leerzeichen durch underscores ersetzt. -Marc -- +-----Du hast eine nützliche Linuxseite? Du suchst eine?-----------+ | --> http://www.Links2Linux.de <-- | | | +---Registered-Linux-User-#136487------------http://counter.li.org + --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
* Christian Augustat (PCMAGICX@t-online.de) [20000416 13:36]:
deklariert: Ich lese mit einer "for" Schleife alle Dateien ein (*.???),
Ungetesteter Schnellschuss:
for i in *.???; do mv "$i" $(echo $i | sed 's/ /_/g); done
--
Philipp Thomas
Hallo, * Philipp Thomas wrote on 16 Apr 2000:
Ungetesteter Schnellschuss:
for i in *.???; do mv "$i" $(echo $i | sed 's/ /_/g); done
for i in *.???; do mv "$i" $(echo $i | sed 's/ /_/g'); done ^ :-) das war der Fehlerteufel. Gruß, Sebastian -- "No worries." - Rincewind Sebastian Helms - mailto:sebastian@helms.sh (PGP available) SuSE-Linux-Mailinglisten-FAQ: http://www.helms.myokay.net/faq/ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
On Son, Apr 16, 2000 at 05:58:15 +0200, Philipp Thomas wrote:
* Christian Augustat (PCMAGICX@t-online.de) [20000416 13:36]:
deklariert: Ich lese mit einer "for" Schleife alle Dateien ein (*.???),
Ungetesteter Schnellschuss:
for i in *.???; do mv "$i" $(echo $i | sed 's/ /_/g); done
Das geht bei Dateien mit einem Leerzeichen drin schief. Die werden dann nämlich als _zwei_ Dateinamen ausgewertet (schon von der for-Schleife). Das kann man auch nicht als: for i in "*.???" schreiben, dann stehen in i _alle_ Dateinamen als ein Argument drin. Versuche es mal mit dem read: ls *.??? | while read i; do mv "$i" $(echo $i | sed 's/ /_/g) done Jan --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
* Jan Trippler schrieb am 17.Apr.2000:
On Son, Apr 16, 2000 at 05:58:15 +0200, Philipp Thomas wrote:
Ungetesteter Schnellschuss:
for i in *.???; do mv "$i" $(echo $i | sed 's/ /_/g); done
Das geht bei Dateien mit einem Leerzeichen drin schief. Die werden dann nämlich als _zwei_ Dateinamen ausgewertet (schon von der for-Schleife). Das kann man auch nicht als: for i in "*.???" schreiben, dann stehen in i _alle_ Dateinamen als ein Argument drin.
Du hast das nicht getestet. Ich hatte das auch gedacht, aber for i in * funktioniert. Bernd -- Probleme mit dem Drucker? Schon die Druckercheckliste beachtet? http://localhost/doc/sdb/de/html/drucker-howto.html | Auch lesenswert: Oder schon das Drucker-HOWTO gelesen? | man lpr file://usr/doc/howto/de/DE-Drucker-HOWTO.txt.gz | Zufallssignatur 3 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
On Mon, Apr 17, 2000 at 08:53:57 +0200, Bernd Brodesser wrote: [for i in *.???]
Du hast das nicht getestet. Ich hatte das auch gedacht, aber for i in * funktioniert.
Uups - stimmt. Die bash ist anscheinend intelligent genug, sowas zu handhaben. Ich hatte das noch mit for i in `ls` ... in Erinnerung, das geht nicht. Jan --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Bernd Brodesser schrieb am Montag den 17. April 2000:
for i in *.???; do mv "$i" $(echo $i | sed 's/ /_/g); done
Das geht bei Dateien mit einem Leerzeichen drin schief. Die werden dann nämlich als _zwei_ Dateinamen ausgewertet (schon von der for-Schleife). Das kann man auch nicht als: for i in "*.???" schreiben, dann stehen in i _alle_ Dateinamen als ein Argument drin.
Du hast das nicht getestet. Ich hatte das auch gedacht, aber for i in * funktioniert.
Wie "for i in *; ..." aufgeteilt wird, hängt vom Inhalt der Variablen IFS ab. Wenn dort auch Space enthalten ist, wird das File "foo bar" als zwei Strings geliefert. Das IMHO sicherste ist es, in IFS \000 unterzubringen und die Files mit find -print0 zu suchen. NULL ist ein Zeichen, das im Filenamen nicht vorkommen kann. Gruß Jens -- registered linux user #130250 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
participants (8)
-
B.Brodesser@online-club.de
-
Jan.Trippler@t-online.de
-
jhe@lihas.de
-
marc.schiffbauer@links2linux.de
-
PCMAGICX@t-online.de
-
pthomas@suse.de
-
sebastian@helms.sh
-
shogun@tausys.franken.de