Shell Script zum sortieren von Fotos, videos, mp3 ect..

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
hanskanns
Beiträge: 177
Registriert: 07.06.2008 10:57:55

Shell Script zum sortieren von Fotos, videos, mp3 ect..

Beitrag von hanskanns » 15.06.2011 20:11:22

Hallo

Habe mein Urlaub mit ein paar Kollegen verbracht, nun hab ich jetzt ca 200 GB Urlaubsmaterial, der Sortiert werden Sollte (MPEG-4, 720p 1080p, jpeg .mp3 files)

Das Ganze ist schon etwas vor geordnet

Jede Datei ist in einem Ordner

z.b.

Akihabara.W01T01.der.erster tag xviD-Jürgen

Akihabara.W01T01.der.erster tag 1080p-philipp

Akihabara.W01T01.der.erster tag 720p-Sven

Disneyland W01 T04 Urayasu, Chiba xviD-Jürgen

Die und andere files möchte ich gerne per script nach
Audio
JPG
HD 720
HD 1080
Divx

ect... verschieben, je nach tag im Ordner

weiß Jemanden wie man das am besten lösen kann

LG

Benutzeravatar
shevegen
Beiträge: 416
Registriert: 30.03.2004 00:32:53

Re: Shell Script zum sortieren von Fotos, videos, mp3 ect..

Beitrag von shevegen » 15.06.2011 23:13:51

Da würde ich eher Ruby verwenden als shell scripts.

Ich bin mir noch nicht ganz klar wie du das geordnet haben möchtest.

Kannst du mal ein konkretes Beispiel geben von einer Datei wo sie ist, und wo du sie hinhaben möchtest?

hanskanns
Beiträge: 177
Registriert: 07.06.2008 10:57:55

Re: Shell Script zum sortieren von Fotos, videos, mp3 ect..

Beitrag von hanskanns » 16.06.2011 10:25:44

shevegen hat geschrieben:Da würde ich eher Ruby verwenden als shell scripts.

Ich bin mir noch nicht ganz klar wie du das geordnet haben möchtest.

Kannst du mal ein konkretes Beispiel geben von einer Datei wo sie ist, und wo du sie hinhaben möchtest?
Hallo

Möchte zb. das

Akihabara.W01T01.der.erster tag xviD-Jürgen nach Divx verschoben wird

Akihabara.W01T01.der.erster tag 1080p-philipp nach HD 1080 verschoben wird

Akihabara.W01T01.der.erster tag 720p-Sven nach HD 720 verschoben wird

karaoke abend W01T01 tom nach Audio verschoben wird

so würde ich das gerne ordnen

LG

Benutzeravatar
MustrumRidcully
Beiträge: 124
Registriert: 16.06.2005 04:11:24
Lizenz eigener Beiträge: GNU General Public License
Wohnort: berlin

Re: Shell Script zum sortieren von Fotos, videos, mp3 ect..

Beitrag von MustrumRidcully » 16.06.2011 11:11:54

puuh, das ist nicht so ohne. deine anforderungen sind ziemlich hoch, so soll das skript z.b. erkennen, dass du mit xviD DivX meinst und 1080p nach 'HD 1080' gehört. das geht im prinzip schon, nur brauchst du dafür eine config-datei mit all den mappings, die so vorkommen.

eine andere möglichkeit würde darin bestehen, zunächst einmal alle dateinamen zu standardisieren. das machst du am einfachsten mit einer reihe von einzeilern, etwa so:

Code: Alles auswählen

for file in *; do mv "$file" tmp.dings; file=${file/xviD/Divx}; mv tmp.dings "$file"; done
usw. wichtig ist bei den filenames, die du hast, dass du die doppelten quotations nicht vergisst, sonst verläuft sich die bash. nachdem du alle namen normalisiert hast, kannste mit ähnlichen one-liners die dateien verschieben.

aber ich schätze, shevegen hat recht. du bist mit einer skriptsprache vermutlich besser bedient. irgendwie klingt das schon fast nach einem sql-problem.^^
Volk ist Opium für eine Religion.

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: Shell Script zum sortieren von Fotos, videos, mp3 ect..

Beitrag von ThorstenS » 16.06.2011 11:26:20

Bilder kannst du anhand ihres exif headers mit Debianjhead in eine einheitliche Form bringen: jhead -autorot -ft -nf%Y-%m-%d_%H-%M-%S *jpg

Benutzeravatar
spiralnebelverdreher
Beiträge: 1298
Registriert: 23.12.2005 22:29:03
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Frankfurt am Main

Re: Shell Script zum sortieren von Fotos, videos, mp3 ect..

Beitrag von spiralnebelverdreher » 16.06.2011 11:42:39

Wenns kein Shellscript sein muss: Im KDE Umfeld gibt es ein recht mächtiges krename, welches in diverse Metadaten der Dateien reinschauen kann und diese Informationen in die Umbenneung einfließen lassen kann.

Alternativ kannst du auch pyrename anschauen.

hanskanns
Beiträge: 177
Registriert: 07.06.2008 10:57:55

Re: Shell Script zum sortieren von Fotos, videos, mp3 ect..

Beitrag von hanskanns » 16.06.2011 12:07:24

MustrumRidcully hat geschrieben:puuh, das ist nicht so ohne. deine anforderungen sind ziemlich hoch, so soll das skript z.b. erkennen, dass du mit xviD DivX meinst und 1080p nach 'HD 1080' gehört. das geht im prinzip schon, nur brauchst du dafür eine config-datei mit all den mappings, die so vorkommen.

eine andere möglichkeit würde darin bestehen, zunächst einmal alle dateinamen zu standardisieren. das machst du am einfachsten mit einer reihe von einzeilern, etwa so:

Code: Alles auswählen

for file in *; do mv "$file" tmp.dings; file=${file/xviD/Divx}; mv tmp.dings "$file"; done
usw. wichtig ist bei den filenames, die du hast, dass du die doppelten quotations nicht vergisst, sonst verläuft sich die bash. nachdem du alle namen normalisiert hast, kannste mit ähnlichen one-liners die dateien verschieben.

aber ich schätze, shevegen hat recht. du bist mit einer skriptsprache vermutlich besser bedient. irgendwie klingt das schon fast nach einem sql-problem.^^
Hi

Danke

Kann man das nicht über die Ordner tag machen

Also

wenn im Ordner name 720p-Sven steht dann nach HD 720 verschoben

oder wenn Ordner name

Akihabara.W0*T0*.* xviD nach Divx verschoben ect..

so in etwa

die idee mit der config-datei mit all den mappings, die so vorkommen.ist shon was ich mir vorstelle

@spiralnebelverdreher

habe kein gui installiert

pyRenamer ist ja für das Umbenennen von Dateien, und das suche ich nicht

Benutzeravatar
hikaru
Moderator
Beiträge: 13926
Registriert: 09.04.2008 12:48:59

Re: Shell Script zum sortieren von Fotos, videos, mp3 ect..

Beitrag von hikaru » 16.06.2011 12:32:58

hanskanns hat geschrieben:wenn im Ordner name 720p-Sven steht dann nach HD 720 verschoben

Code: Alles auswählen

mv /bla/*720p-Sven*/* /bla/HD\ 720/
hanskanns hat geschrieben:Akihabara.W0*T0*.* xviD nach Divx verschoben ect..

Code: Alles auswählen

mv /bla/Akihabara.W0*T0*.*\ xviD /bla/Divx/
Oder habe ich irgendwas übersehen?

hanskanns
Beiträge: 177
Registriert: 07.06.2008 10:57:55

Re: Shell Script zum sortieren von Fotos, videos, mp3 ect..

Beitrag von hanskanns » 16.06.2011 13:28:04

hikaru hat geschrieben:
hanskanns hat geschrieben:wenn im Ordner name 720p-Sven steht dann nach HD 720 verschoben

Code: Alles auswählen

mv /bla/*720p-Sven*/* /bla/HD\ 720/
hanskanns hat geschrieben:Akihabara.W0*T0*.* xviD nach Divx verschoben ect..

Code: Alles auswählen

mv /bla/Akihabara.W0*T0*.*\ xviD /bla/Divx/
Oder habe ich irgendwas übersehen?
Hallo

Ich habe auch was gebastelt
sortieren.sh

Code: Alles auswählen

#!/bin/bash
# SETUP-Script (Lese Config ein,..)
CONFIG="/home/hanskans/config.sh"
config.sh

Code: Alles auswählen

#720 config
if 720p
    then mv /home/hanskans/urlaub/*720p /home/hanskans/sorturlaub/HD\ 720/
  elif Sven  
    mv /home/hanskans/urlaub/*Sven  /home/hanskans/sorturlaub/HD\ 720/
  else 
fi

#1080p config

if 1080p
    then mv /home/hanskans/urlaub/*1080p /home/hanskans/sorturlaub/HD\ 1080/
  elif Sven  
    mv /home/hanskans/urlaub/*philipp  /home/hanskans/sorturlaub/HD\ 1080/
  else 
fi

#Divx /Xvid config

if Xvid
    then mv /home/hanskans/urlaub/*Xvid/home/hanskans/sorturlaub/Xvid/
  elif Jürgen  
    mv /home/hanskans/urlaub/*Jürgen /home/hanskans/sorturlaub//Xvid/
  else 
fi
ist es so richtig :oops:
habe noch 2 fragen wegen bilder und die audio files

wie kann man sowas lösen

wenn ein Ordner .wav beinhaltet soll dieser nach Audio verschoben werden (egal wie der name ist )

wenn ein Ordner ..jpg oder .jpeg beinhaltet soll dieser nach JPG verschoben werden (egal wie der name ist )

vielen dank für die Hilfe

Benutzeravatar
Tintom
Moderator
Beiträge: 3069
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: Shell Script zum sortieren von Fotos, videos, mp3 ect..

Beitrag von Tintom » 17.06.2011 18:39:16

hanskanns hat geschrieben:
shevegen hat geschrieben:Da würde ich eher Ruby verwenden als shell scripts.

Ich bin mir noch nicht ganz klar wie du das geordnet haben möchtest.

Kannst du mal ein konkretes Beispiel geben von einer Datei wo sie ist, und wo du sie hinhaben möchtest?
Hallo

Möchte zb. das

Akihabara.W01T01.der.erster tag xviD-Jürgen nach Divx verschoben wird

Akihabara.W01T01.der.erster tag 1080p-philipp nach HD 1080 verschoben wird

Akihabara.W01T01.der.erster tag 720p-Sven nach HD 720 verschoben wird

karaoke abend W01T01 tom nach Audio verschoben wird

so würde ich das gerne ordnen

LG
Dein Skript wird sich kommentarlos wieder beenden, da du nur eine Variable definierst.
Willst du jetzt eine Lösung, die es dir taggenau sortiert (Stichwort: EXIF-Tag) oder die generell in Bilder/Videos/Audio unterteilt?

Gruß

hanskanns
Beiträge: 177
Registriert: 07.06.2008 10:57:55

Re: Shell Script zum sortieren von Fotos, videos, mp3 ect..

Beitrag von hanskanns » 17.06.2011 23:59:51

Tintom hat geschrieben:
Dein Skript wird sich kommentarlos wieder beenden, da du nur eine Variable definierst.
Willst du jetzt eine Lösung, die es dir taggenau sortiert (Stichwort: EXIF-Tag) oder die generell in Bilder/Videos/Audio unterteilt?

Gruß
Hallo

EXIF-Tag ist doch nur der header im Bild wo Aufnahmeparameter gespeichert werden :

z,b Datum und Uhrzeit,Hoch- oder Querformat,ect,...

das ist für mich alles unwichtig

was ich realisieren möchte ist:

wenn in ein Ordner eine datei mit der Endung .wav dann nach xy verschieben

wenn in ein Ordner eine Datei mit der Endung .jpg dann nach yz verschieben

welche Auflösung oder bit rate, Name die file haben ist auch egal

bei den Videos , sollte das über den Ordner tag (Name) sortiert , wie ich das oben schon erläutert habe

zum Script was ich geschrieben habe

da fehlt das befehl bei else richtig?

also

#720 config
if 720p
then mv /home/hanskans/urlaub/*720p /home/hanskans/sorturlaub/HD\ 720/
elif Sven
then
mv /home/hanskans/urlaub/*Sven /home/hanskans/sorturlaub/HD\ 720/
else bla bla bla
fi[

und jetzt Nochmal zur Erläuterung

wenn einen Ordner unter "/home/hanskans/urlaub/" 720p und Sven, als tag im Ordnername hat dann nach /home/hanskans/sorturlaub/HD\ 720/ verschieben, wenn das nicht funktioniert (also die tags nicht vorkommen ) dann einfach überspringen.

das sollte der script bei jede einzelne Dateityp machen

was hab ich falsch gemacht

LG

Antworten