Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
striche statt spaces

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
bjoernforce
Gast





BeitragVerfasst am: 10. Mai 2003 8:32   Titel: striche statt spaces

guten morgen erst einmal

ich habe hier auf meiner linux-box ein kleines problem. ich bin gerade dabei mich mal etwas intnsiver mit der konsole zu beschaeftigen. geht auch alles soweit. aber ich habe immer probleme mit der autovervollstaendigung, wenn in dem daeinamen luecken sind. er macht dann immer irgendwelche schraegstriche zwischen den woertern. der befehl geht dann aber meistens trotzdem nicht, weil er damit nicht zurecht kommt.

ich suche nun 2 dinge
zum einen eine moeglichkeit eine Datei mit luecken anzugeben ohne das ich mit strichen arbeiten muss. geht das auch irgendwie mit klammern, die man um den gesamten namen der datei setzten kann, oder was aehliches?

das zweite, was ich suche ist ein befehl fuer die konsole mit dem ich alle dateien in einem verzeichnis und alle dateien in dessen unterverzeichnissen von den luecken im namen befreit, die saces also durch unterstriche ersetzt.
waere echt schoen, wenn ihr da ne loesung haettet.

vielen dan schon mal fuer eure antworten!

so long

bjoern
 

Descartes
Gast





BeitragVerfasst am: 10. Mai 2003 21:15   Titel: Re: striche statt spaces

a) den Datei oder Verzeichnisnamen in Spaces setzen: ls -l "hier kommt Kurt"

b) ein kleines Bash Scripts z.B.

code:

#!/bin/bash

# Verzeichnisse umbenennen
for verzeichnis in "$(find . -type d -print)"; do
mv ${verzeichnis} ${verzeichnis/ /_}
done

# Dateien umbenennen
for datei in "$(find . -type f -print)"; do
mv ${datei} ${date/ /_}
done



Wenn du lediglich alle Dateien/Verzeichnisse im aktuellen Verzeichnis umebennen möchtest, dann musst du bei find noch den Parameter "-maxdepth 1" anhängen.
 

Descartes
Gast





BeitragVerfasst am: 10. Mai 2003 21:17   Titel: Re: striche statt spaces

>
> mv ${datei} ${date/ /_}
>
Schreibfehler.

Muss natürlich "datei" und nicht "date" lauten:

mv ${datei} ${datei/ /_}
 

Jochen
Gast





BeitragVerfasst am: 10. Mai 2003 21:23   Titel: Re: striche statt spaces

Hi!

Die Autoververvollständigung der bash macht eigentlich schon das Richtige. Beim Dateinamen "datei mit spaces.txt" macht sie aus
ls -l da<TAB>
ein
ls -l datei\ mit\ spaces.txt
Die Backslashes sagen der Shell, dass die Leerzeichen als Zeichen an und für sich (und damit als Bestandteil des Dateinamens) zu betrachten sind. Ansonsten würde die Shell davon ausgehen, das ls 3 Dateien auslisten soll: "datei", "mit" und "spaces.txt". Die existieren natürlich so nicht. Die Backslashes stören also nicht, sondern sorgen dafür, dass die Shell den Dateinamen genau so verwendet, wie er auf der Platte steht. Wenn also hinterher was nicht funktioniert, wird es an etwas anderem gelegen haben!

Wenn Du den Dateinamen in Anführungszeichen ("datei mit spaces.txt") oder Apostrophe ('datei mit spaces.txt') einschliesst, werden die Backslashes nicht mit eingefügt und sind auch nicht notwendig, da die Anführungszeichen der Shell sagen, dass alles innerhalb der Zeichen als eine zusammengehörige Zeichenkette zu betrachten ist. Das ist sozusagen die "Klammerung", von der Du oben gesprochen hast.

Und wenn Du jetzt immer noch in einem ganzen Verzeichnisbaum bei allen Dateinamen Leerzeichen durch Unterstriche ersetzen willst, musst Du noch etwas Geduld haben. Das poste ich nämlich etwas später, weil ich jetzt keine Zeit mehr habe (oder jemand anderes!).

Jochen
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy