Hallo,
ich wollte es zwar nicht glauben habe aber kein script oder Programm gefunden was mir hilft.
Eins meiner Verzeichnisse ist angefüllt mit Dateien, dafür sollen Ordner erstellt werden und die passenden Dateien dorthin veschoben werden.
Die meisten Dateien haben diesen Namensaufbau XXXX_Suchstring.Dateiformat
Vielleicht hat jemand ja was passendes.
Schöne Restostern noch
AB65
script zum Erstellen von Folders und zum Sortieren von files
Hi,
is aber nur 'n ungetesteter Schuss aus der Huefte:
Das setzt allerdings voraus, das der Suchstring immer an Position 6 anfaengt. Bevor du den move verwendest, lass erstmal die Schleife mit dem echo laufen un zu testen ob's das ist was du scuhst.
Frohe Ostern
is aber nur 'n ungetesteter Schuss aus der Huefte:
Code: Alles auswählen
#!/bin/bash
for datei in $(ls)
do
my_str=$(basename $datei|cut -c 6-)
#echi "Org. name=$datei - Suchstr.=$my_dtr"
mv $my_str ./MEIN_VERZ
done
Frohe Ostern
Roland
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
Hi,
klar kann es sein das da ein mkdir fehlt, ich bin halt davon ausgegangen, das es die Ordner schon gibt.
Das das Script abbricht liegt daran das es "ein Schuss aus der Huefte " war, hier Version 1.1:
klar kann es sein das da ein mkdir fehlt, ich bin halt davon ausgegangen, das es die Ordner schon gibt.
Das das Script abbricht liegt daran das es "ein Schuss aus der Huefte " war, hier Version 1.1:
Code: Alles auswählen
#!/bin/bash
for datei in $(ls)
do
my_str=$(basename $datei|cut -c 6-)
mkdir -p $my_str 2>/dev/null
#echi "Org. name=$datei - Suchstr.=$my_dtr"
mv $datei ./MEIN_VERZ
done
Roland
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
Moin,
Das Ziel des mv war noch MEIN_VERZ, wenn du's nicht geaendert hast. Da muss natuerlich das Verzeichnis hin, das zuvor mit mkdir erstellt wurde. Das wuerde heissen, das die letzte Datei die das Script bearbeitet hat, jetzt in dem selben Verzeichnis unter dem Namen MEIN_VERZ zu finden ist. Dorthin wirden alle Dateien Verschoben, und haben sich jeweils überschrieben, sorry.
Erklaerung:
Zeile 1 ist die "Magicline", oder auch "shebang" ganannt, damit wird festgelegt, wer das Script ausfuehrt, die Bash in diesem Fall
In der naechsten Zeile wird die Ausgabe von ls Stueck fuer Stueck an die Variable datei zugewiesen.
Das "do" beginnt einen Block.
Hetzt wird aus dem Dateinamen der interessante Teil herausgeschnitten, und der Variable my_str zugewiesen. Was basename und cut genau machen, kannst du im Manual nachlesen.
Zu mkdir steht auch alles im Manual, das "2>/dev/null" leitet Fehlerausgaben, wenn sie denn kommen sollten, ins Nirvana.
Anschliessend werden die Dateien verschoben.
Jetzt mir done noch den Block beenden, und das war's.[/code]
joh, ich seh's gerade, tut mir leid, war aber halt auch jedesmal "ein Schuss aus der Huefte".AB65 hat geschrieben:tja das war voreilig das script hat schön Ordner erstellt nur leider die Dateien ins Nirvana befördert.
Code: Alles auswählen
#!/bin/bash
for datei in $(ls)
do
my_str=$(basename $datei|cut -c 6-)
mkdir -p $my_str 2>/dev/null
#echi "Org. name=$datei - Suchstr.=$my_dtr"
mv $datei ./$my_str
done
Erklaerung:
Zeile 1 ist die "Magicline", oder auch "shebang" ganannt, damit wird festgelegt, wer das Script ausfuehrt, die Bash in diesem Fall
In der naechsten Zeile wird die Ausgabe von ls Stueck fuer Stueck an die Variable datei zugewiesen.
Das "do" beginnt einen Block.
Hetzt wird aus dem Dateinamen der interessante Teil herausgeschnitten, und der Variable my_str zugewiesen. Was basename und cut genau machen, kannst du im Manual nachlesen.
Zu mkdir steht auch alles im Manual, das "2>/dev/null" leitet Fehlerausgaben, wenn sie denn kommen sollten, ins Nirvana.
Anschliessend werden die Dateien verschoben.
Jetzt mir done noch den Block beenden, und das war's.[/code]
Roland
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"