Alle Beiträge von c-i-k-o
-
Dateinamen mit Leerzeichen
Hallo feuerjinn, danke für deine Hilfe. Ich habe soeben deinen Code kopiert und ausgeführt. Die Ausgabe: FW Dies ist - eine Mail - Beispiel -.msg ich kann nicht nachvollziehen, warum er den Dateinamen als solches in mehrere Strings trennt
-
Dateinamen mit Leerzeichen
Hallo Zusammen, ich stehe erneut einem Porblem bzgl. des Umzugs auf ein neues Share entgegen. Undzwar habe ich in sämtlichen Ordnern mit Unterordnern msg-dateien. Das Manko an der Sache ist, dass die msg-Dateien im Namen mehrere Leerzeichen haben - manchmal direkt zwei oder drei hintereinander. Die Dateinamen sind somit zu lang für das neue Share und führen zum Aufschlag einer Fehlermeldung. Mein Ziel ist es jetzt die Leerzeichen aus dem Dateinamen zu entfernen und anschließend die Dateinamen so zu kürzen, dass nur die ersten 40 Zeichen und am ende .msg bestehen bleibt. Dazu habe ich folgendes Skript geschrieben (vorerst nur um die Leerzeichen zu entfernen, denn daran scheitert es schon :/ ): #!/bin/bash for i in `find Ordner/ -type f -name "*.msg"` do NEWNAME=`echo "$i" | sed "s/ //g"` mv $i $NEWNAME doneLeider wird jedes Wort nach einem Leerzeichen in die Variable i gepackt, sodass nicht der ganze Dateinamen in i zwischengespeichert wird, sondern die einzelnen Wörter. Daraus folgt folgende Fehlermeldung: mv: cannot access Verzeichnis/Unterverzeichnis/Unterverzeichnis/Dies mv: cannot access ist mv: cannot access eine mv: cannot access Mail mv: Insufficient arguments (1) Usage: mv [-f] [-i] f1 f2 mv [-f] [-i] f1 ... fn d1 mv [-f] [-i] d1 d2, Ich ale Neuling, kann die Ursache nicht finden und hoffe auf eure Unterstützung.
-
Skript zum umbennen der Ordnernamen
Hi Carsten, genau das ist mir gerade auch eingefallen, leider nachdem ich schon so lange gezweifelt habe :/ Es hat mit dem find /verzeichnis/xyz... geklappt. Danke für den Hinweis - ich muss sie abändern, weil das Windows-Share die Ordnernamen in der Form nicht akzeptiert. Die Dateien habe ich in diesem Fall nicht angefasst nur die Ordnernamen. Backup habe ich sicherheitshalber abgelegt. Besten Dank für deine Unterstützung
-
Skript zum umbennen der Ordnernamen
so jetzt habe ich das Restultat des sed-Kommandos in eine Variable geschrieben: #!/bin/bash for i in ` find . -type d -name "*.*"` do new_dirname=$(echo "$i" | sed -e 's/\./_/g') mv $i $new_dirname done und kriege folgende Fehlermeldung: mv: Insufficient arguments (1) Usage: mv [-f] [-i] f1 f2 mv [-f] [-i] f1 ... fn d1 mv [-f] [-i] d1 d2 mv: cannot rename .... to .... : No such file or directory
-
Skript zum umbennen der Ordnernamen
danke für den Tipp, werde ich auf jeden mit aufnehmen.
-
Skript zum umbennen der Ordnernamen
Hi, danke carstenj. ich habe es jetzt versucht wie du es vorgeschlagen hast. sieht jetzt so aus #!/bin/bash for i in ` find . -type d -name "*.*"` do echo $i | sed -e 's/\./ /g' doneaber irgendwie will es trotzdem nicht. die Punkte werden zwar ersetzt durch Leerzeichen und ausgegeben aber gespeichert wird das ganze nicht :/
-
Skript zum umbennen der Ordnernamen
Hallo Zusammen, als Neuling in der Linuxumgebung habe ich folgendes Problem: Wir sind gerade dabei unser Fileshare von einem Linux OS in ein Win OS umzuziehen. Jetzt meckert die Windowsumgebung, wenn im Ordnernamen Punkte vorkommen. Diese kommen aber fast in jedem Ordnernamen vor. Bsp. www.bla.de/bla_bl.de/bla.bla.com ... usw. Die Ordnernamen einzeln händisch umzubenennen wäre IT zu Fuß und so ziemlich aufwendig. Jetzt habe ich versucht ein Script zu schreiben, komme aber nicht wirklich weiter. Mein Skript sieht wie folgt aus: #!/bin/bash for i in ` find . -type d -name "*.*"` # finde alle ordner die einen Punkt im Namen haben do echo $i # gebe ordnernamen aus sed -e 's/'.'/''/g' # und ersetze im Ordnernamen $i Punkt durch Leerzeichen # ich habe an dieser stelle auch diese Zeile versucht: ${i /.//} - klappt aber auch nicht done mein Ansatz ist: ich will die Ordnernamen in eine Stringvariable schreiben und diesen mittels der Variable umbennen, indem ich die Zeichen ersetze. Ich habe natürlich schon im Forum gesucht und natürlich auch schon gegoogelt, leider komme ich nicht weiter. Freue mich schon auf eure Hilfe. Besten Dank im Voraus.