28.03.2024, 19:25 UhrDeutsch | English
Hallo Gast [ Registrierung | Anmelden ]

Neues Thema eröffnen   Neue Antwort erstellen
Vorheriges Thema anzeigen Druckerfreundliche Version Einloggen, um private Nachrichten zu lesen Nächstes Thema anzeigen
Autor Nachricht
stalin2000
Titel: Automatische Ordner-Erstellung nach Namen von Dateien ?  BeitragVerfasst am: 16.07.2008, 02:13 Uhr



Anmeldung: 04. Jan 2007
Beiträge: 1604
Wohnort: Hamburg
Hallo,

ich habe das Problem, daß ich sehr viele Textdateien habe für die ich jeweils einen eigenen Ordner mit dem selben Namen wie die Datei erstellen möchte.
Anschließend möchte ich, daß jede Textdatei in ihren gleichnamigen Ordner automatisch kopiert wird.

Weiß da jemand eventuell, wie eine Befehlsabfolge für diesen Zweck ungefähr lauten könnte?

Also mit mkdir kann man ja Verzeichnisse erstellen. Da ich auch eine Liste in Text, bzw Tabellenform der Dateinamen habe, müßte ich nur noch die Verknüpfung von meiner Dateiliste und dem Befehl mkdir irgendwie hinbekommen.... Aber wie.. ?

Gruß Christopher

_________________
Es ist dem Untertanen untersagt, den Maßstab seiner beschränkten Einsicht an die Handlungen der Obrigkeit anzulegen - Kurfürst Friedrich Wilhelm von Brandenburg
www.projektidee.org | www.gesundheitstabelle.de | www.neoliberalyse.de
 
 Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen  
Antworten mit Zitat Nach oben
sc
Titel:   BeitragVerfasst am: 17.07.2008, 07:59 Uhr



Anmeldung: 26. Nov 2005
Beiträge: 24

stalin2000 hat folgendes geschrieben::
Da ich auch eine Liste in Text, bzw Tabellenform der Dateinamen habe...


Code:

#!/bin/bash

for i in "`cat dateiliste.txt`"
do
        mkdir `basename "$i" .txt`
        cp -a "$i" `basename "$i" .txt`
done


daran könntest Du Dich evt. anlehnen.
Script ist aber ungetestet und enthält keine Sicherheitsabfragen.
Übernehme keine Gewähr für Deine Daten Winken

Ich nehme mal an, dass im Ordnername nicht die Datei-Endung
(hier im Beispiel .txt) enthalten sein braucht. Sonst wirst Du ver-
mutlich die Ordner erst in einem anderen Verzeichnis anlegen müssen,
da sonst der Dateinamen doppelt vorhanden wäre ...
Des Weiteren müsstest `basename "$i" .txt` durch "/Pfad/$i" oder
so ähnlich ersetzten.

Alternativ zur Dateiliste kannst ja auch eine List-Abfrage in der
for-Schleife machen.

Code:
for i in "`ls`"


Ggf. musst noch schaun, dass vorhandene Ornder nicht angezeigt werden

Vielleicht hilfts Dir ja irgendwie weiter ....
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
stalin2000
Titel:   BeitragVerfasst am: 17.07.2008, 10:38 Uhr



Anmeldung: 04. Jan 2007
Beiträge: 1604
Wohnort: Hamburg
Danke!

ich habe jetzt aus folgendem eine .sh Datei gemacht:

Zitat:
#!/bin/bash

for i in "`cat liste.txt`"
do
mkdir `basename "$i" .txt`
cp -a "$i" `basename "$i" .txt`
done


Das Problem ist, daß das Script jetzt für jedes Wort einen Ordner macht. Jede Zeile der liste.txt enthält mehrere Worte.

Kann ich das so modifizieren, daß er automatisch aus jeder Zeile einen Ordner macht?

Gruß Christopher

_________________
Es ist dem Untertanen untersagt, den Maßstab seiner beschränkten Einsicht an die Handlungen der Obrigkeit anzulegen - Kurfürst Friedrich Wilhelm von Brandenburg
www.projektidee.org | www.gesundheitstabelle.de | www.neoliberalyse.de
 
 Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen  
Antworten mit Zitat Nach oben
Kano
Titel:   BeitragVerfasst am: 17.07.2008, 11:26 Uhr



Anmeldung: 17. Dez 2003
Beiträge: 16783

while read x; do
....
done <<EOT
$(cat liste.txt)
EOT
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
jgese
Titel:   BeitragVerfasst am: 17.07.2008, 13:29 Uhr



Anmeldung: 18. Jan 2004
Beiträge: 645

---


Zuletzt bearbeitet von jgese am 20.07.2008, 12:11 Uhr, insgesamt 2 Male bearbeitet
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
stalin2000
Titel:   BeitragVerfasst am: 17.07.2008, 23:21 Uhr



Anmeldung: 04. Jan 2007
Beiträge: 1604
Wohnort: Hamburg
Ja, danke.

Fast funktioniert das Script schon.

Zitat:
mkdir: kann Verzeichnis „U2 - Pride.txt“ nicht anlegen: Die Datei existiert bereits


Müßte man noch das txt beim Verzeichnis wegbekommen, oder jedem Ordner noch ein Zeichen hinzufügen und dann müßte's passen...

_________________
Es ist dem Untertanen untersagt, den Maßstab seiner beschränkten Einsicht an die Handlungen der Obrigkeit anzulegen - Kurfürst Friedrich Wilhelm von Brandenburg
www.projektidee.org | www.gesundheitstabelle.de | www.neoliberalyse.de
 
 Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen  
Antworten mit Zitat Nach oben
jgese
Titel:   BeitragVerfasst am: 18.07.2008, 12:28 Uhr



Anmeldung: 18. Jan 2004
Beiträge: 645

---


Zuletzt bearbeitet von jgese am 20.07.2008, 12:12 Uhr, insgesamt ein Mal bearbeitet
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
stalin2000
Titel:   BeitragVerfasst am: 18.07.2008, 12:54 Uhr



Anmeldung: 04. Jan 2007
Beiträge: 1604
Wohnort: Hamburg
Hm, aber wie soll denn das Verzeichnis xy.txt angelegt werden, wenn im selben Verzeichnis schon die Datei xy.txt liegt? Das ist doch gar nicht möglich.

_________________
Es ist dem Untertanen untersagt, den Maßstab seiner beschränkten Einsicht an die Handlungen der Obrigkeit anzulegen - Kurfürst Friedrich Wilhelm von Brandenburg
www.projektidee.org | www.gesundheitstabelle.de | www.neoliberalyse.de
 
 Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen  
Antworten mit Zitat Nach oben
blauweiss
Titel:   BeitragVerfasst am: 19.07.2008, 08:28 Uhr



Anmeldung: 12. Mar 2005
Beiträge: 368

Es wäre ganz hilfreich, wenn du mal 2-3 Zeilen deiner
'Liste in Text, bzw Tabellenform der Dateinamen'
posten würdest
und das, was dabei als Ergebnis herauskommen soll.

_________________
Gruss an alle Kanotix-Fans, blauweiss
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
stalin2000
Titel:   BeitragVerfasst am: 19.07.2008, 11:34 Uhr



Anmeldung: 04. Jan 2007
Beiträge: 1604
Wohnort: Hamburg
Okay,
Die Liste sieht so aus:

Zitat:

Tocotronic - unter der Schnellstraße
Die Sterne - Big in Berlin
R.E.M. - Man on The Moon
Archive - Fuck U

Und dann möchte ich alle Ordner haben wie:

Zitat:
Die Sterne - Big in Berlin


und so weiter...

_________________
Es ist dem Untertanen untersagt, den Maßstab seiner beschränkten Einsicht an die Handlungen der Obrigkeit anzulegen - Kurfürst Friedrich Wilhelm von Brandenburg
www.projektidee.org | www.gesundheitstabelle.de | www.neoliberalyse.de
 
 Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen  
Antworten mit Zitat Nach oben
Kano
Titel:   BeitragVerfasst am: 19.07.2008, 12:16 Uhr



Anmeldung: 17. Dez 2003
Beiträge: 16783

Wars zu schwer mein beispiel komplett auszufüllen? Anscheinend kannst die eine fehlende Zeile nicht reinschreiben:

while read x; do
mkdir -p "$x"
done <<EOT
$(cat liste.txt)
EOT
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
jgese
Titel: Re: Automatische Ordner-Erstellung nach Namen von Dateien ?  BeitragVerfasst am: 19.07.2008, 12:58 Uhr



Anmeldung: 18. Jan 2004
Beiträge: 645

---


Zuletzt bearbeitet von jgese am 20.07.2008, 12:12 Uhr, insgesamt ein Mal bearbeitet
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
blauweiss
Titel:   BeitragVerfasst am: 19.07.2008, 14:22 Uhr



Anmeldung: 12. Mar 2005
Beiträge: 368

Kano hat folgendes geschrieben::
Wars zu schwer mein beispiel komplett auszufüllen?...

Vielleicht weil es so nicht geht?
Wie stalin2000 schon geschrieben hat, er kann in einem Ordner
in dem z.B. die Datei '123.txt' existiert nicht ein Verzeichnis '123.txt' erstellen,
oder kennst du da etwa einen Kniff?

Er kann eigentlich nur den Umweg über Verschieben oder Umbenennen wählen.
Verschieben vll. so (Anführungsstriche sind wichtig, da offensichtl. Leerzeichen vorhanden sind),
bediene mich mal an deinem Beispiel:

while read x; do
  
mv -f "$x" /tmp
  mkdir "$x"
  mv -f "/tmp/$x" "$x"
done <<EOT
$(cat liste.txt)
EOT

_________________
Gruss an alle Kanotix-Fans, blauweiss
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
Kano
Titel:   BeitragVerfasst am: 19.07.2008, 14:45 Uhr



Anmeldung: 17. Dez 2003
Beiträge: 16783

Vermutlich sollte das Verzeichnis ja eh nicht .txt am ende heissen, also müsstest $(basename "$x" .txt) nehmen. Weiterhin ist bei seiner Beispielliste ja nix mit txt zu sehn!
 
 Benutzer-Profile anzeigen Private Nachricht senden  
Antworten mit Zitat Nach oben
stalin2000
Titel:   BeitragVerfasst am: 20.07.2008, 11:55 Uhr



Anmeldung: 04. Jan 2007
Beiträge: 1604
Wohnort: Hamburg
Super dank Euch noch mal!

Das Script von Kano für die Erstellung von Ordnern ohne Dateilistendatei,
sowie das Script aus dem letzten Post von blauweiss, für mit Dateiliste

funktionieren.

_________________
Es ist dem Untertanen untersagt, den Maßstab seiner beschränkten Einsicht an die Handlungen der Obrigkeit anzulegen - Kurfürst Friedrich Wilhelm von Brandenburg
www.projektidee.org | www.gesundheitstabelle.de | www.neoliberalyse.de
 
 Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen  
Antworten mit Zitat Nach oben
Beiträge vom vorherigen Thema anzeigen:     
Gehe zu:  
Alle Zeiten sind GMT + 1 Stunde
Neues Thema eröffnen   Neue Antwort erstellen
Vorheriges Thema anzeigen Druckerfreundliche Version Einloggen, um private Nachrichten zu lesen Nächstes Thema anzeigen
PNphpBB2 © 2003-2007 
 
Deutsch | English
Logos and trademarks are the property of their respective owners, comments are property of their posters, the rest is © 2004 - 2006 by Jörg Schirottke (Kano).
Consult Impressum and Legal Terms for details. Kanotix is Free Software released under the GNU/GPL license.
This CMS is powered by PostNuke, all themes used at this site are released under the GNU/GPL license. designed and hosted by w3you. Our web server is running on Kanotix64-2006.