Batch umbennen von datein Ubuntu (inkl auslesen von Ordnernamen)

derbe

Lt. Commander
Registriert
Aug. 2013
Beiträge
1.702
Ich habe folgende Struktur:

Hauptordner/Name1/UnterOrdnerName 1/Dateiname.endung
Hauptordner/Name1/UnterOrdnerName 2/Dateiname.endung
Hauptordner/Name2/UnterOrdnerName 1/Dateiname.endung
Hauptordner/Name2/UnterOrdnerName 2/Dateiname.endung
Hauptordner/Name2/UnterOrdnerName 3/Dateiname.endung
Hauptordner/Name2/UnterOrdnerName 4/Dateiname.endung

usw.

Ich möchte das ein Bash script mir alle Dateien umbenennt und zwar so:

Der "Name1" soll ausgelesen werden, dann "UnterOrdnerName 1" hier nur die Zahl die mein einem Leerzeichen getrennt ist. Im diesen Ordner "UnterOrdnerName 1" sind x Dateien diese sollen dann so heißen:

Name1 S"zahl von UnterOrdnerName"LEERZEICHENEN 1(wobei hier hochgezählt wird erste Datei 1 zweit 2 usw.) die Dateien sollen so hochgezählt werden wie sie in den Ordner liegen nicht nach Datum. Die Endung der Dateien soll nicht verändert werden (es gibt verschiedene).

Bsp:
Hauptordner/HansPeter/Juhu 1/FASDSAs1234123.avi
Hauptordner/HansPeter/Juhu 1/ASDJUFJ d2333333.mkv
Hauptordner/HansPeter/Juhu 1/das2 sd a 4112222.avi

Hauptordner/HansPeter/Juhu 2/Hans 1234123.avi
Hauptordner/HansPeter/Juhu 2/HSD s2333333.avi
Hauptordner/HansPeter/Juhu 2/FF4 11 22 2 2.avi

Hauptordner/Meter Man/Juhu 1/DAS SD F.avi
Hauptordner/Meter Man/Juhu 1/11s.avi
Hauptordner/Meter Man/Juhu 2/11 12 12.avi

Daraus wird dann:
Hauptordner/HansPeter/Juhu 1/HansPeter S01E01.avi
Hauptordner/HansPeter/Juhu 1/HansPeter S01E02.mkv
Hauptordner/HansPeter/Juhu 1/HansPeter S01E03.avi

Hauptordner/HansPeter/Juhu 2/HansPeter S02E01.avi
Hauptordner/HansPeter/Juhu 2/HansPeter S02E02.avi
Hauptordner/HansPeter/Juhu 2/HansPeter S02E03.avi

Hauptordner/Meter Man/Juhu 1/Meter Man S01E01.avi
Hauptordner/Meter Man/Juhu 1/Meter Man S01E02.avi
Hauptordner/Meter Man/Juhu 2/Meter Man S02E01.avi


usw .
 
Probiers mal damit: https://www.filebot.net. Ich gehe einfach mal von Serien aus (Beispiel), das kann dann gleich noch einiges mehr als ein reines Bash-Script.
 
Photon schrieb:
Sondern wie, nach dem Alphabet?

Ja genau.

blablub1212 schrieb:
Probiers mal damit: https://www.filebot.net. Ich gehe einfach mal von Serien aus (Beispiel), das kann dann gleich noch einiges mehr als ein reines Bash-Script.

Ich schau mal danke. Sieht auf den ersten Blick nach ein Programm aus, möchte an sich nix fummeln sondern nur "einmal" bei bedarf ausführen :) Kling vielleicht albern, aber will mich damit nicht länger als ein "click" beschäftigen.

Hatte mir früher mit Autoit ein Programm genau dafür geschrieben nur leider läuft es auf Linux nicht.
 
Zuletzt bearbeitet:
Am besten vorher auf einer Spielwiese testen:

Code:
#!/bin/bash

HAUPT=~/Hauptordner

for UNTER1 in "$HAUPT"/*; do
	#echo $UNTER1
	i=1
	for UNTER2 in "$UNTER1"/*; do
		#echo "$UNTER2"
		j=1
		for FILE in "$UNTER2"/*; do
			zeroes="0000000"
			I=$zeroes$i
			I=${I:(-2)}
			J=$zeroes$j
			J=${J:(-2)}
			mv "$FILE" "$(dirname "$FILE")/$(basename "$UNTER1") S${I}E${J}.${FILE/*./}"
			let "j++"
		done
		let "i++"
	done
done
 
Sieht gut aus, werde es heute Abend mal testen! Danke :)
Ergänzung ()

Bei leider nicht dazu gekommen, ich hoffe heute klappt es :)
 
Ich werde es jetzt testen :)

€: Das umbennen klappt super! Nur eine Sache ist etwas doof, es mixt die Dateien völlig.


D.h.

Datei1 -> S01E01
Datei2 -> S01E02
Datei3 -> S01E03
Datei4 -> S01E04

Es macht folgendes:

Datei1 -> S01E03
Datei2 -> S01E01
Datei3 -> S01E04
Datei4 -> S01E02

ne Idee wieso das so ist?
 
Zuletzt bearbeitet:
Seltsam habe es nochmal getestet jetzt war es ok hm

€: Habe etwas Angst das es mir alles zerballert :D

€€: Habe noch gesehen das eine Sache leider nicht so sauber klappt:

Wenn z.b nur diese gibt:

Hauptordner/HansPeter/Juhu 10/HansPeter S10E01.avi
Hauptordner/HansPeter/Juhu 10/HansPeter S10E02.mkv
Hauptordner/HansPeter/Juhu 10/HansPeter S10E03.avi

Hauptordner/HansPeter/Juhu 11/HansPeter S11E01.avi
Hauptordner/HansPeter/Juhu 11/HansPeter S11E02.mkv
Hauptordner/HansPeter/Juhu 11/HansPeter S11E03.avi

Hauptordner/HansPeter/Juhu 12/HansPeter S12E01.avi
Hauptordner/HansPeter/Juhu 12/HansPeter S12E02.mkv
Hauptordner/HansPeter/Juhu 12/HansPeter S12E03.avi


Im Moment passiert das:

Hauptordner/HansPeter/Juhu 10/HansPeter S01E01.avi
Hauptordner/HansPeter/Juhu 10/HansPeter S01E02.mkv
Hauptordner/HansPeter/Juhu 10/HansPeter S01E03.avi

Hauptordner/HansPeter/Juhu 11/HansPeter S02E01.avi
Hauptordner/HansPeter/Juhu 11/HansPeter S02E02.mkv
Hauptordner/HansPeter/Juhu 11/HansPeter S02E03.avi

Hauptordner/HansPeter/Juhu 12/HansPeter S03E01.avi
Hauptordner/HansPeter/Juhu 12/HansPeter S03E02.mkv
Hauptordner/HansPeter/Juhu 12/HansPeter S03E03.avi

sagen wir mal es gibt nur Juhu 10 und weiter, wird leider doch immer bei Juhu 1 angefangen. Kannst du da noch was drehen? :)
 
Zuletzt bearbeitet:
€: Ne ist immer "Juhu 12" also "Juhu dann die Zahl" sonst nix.

Name LEERZEICHEN Zahl ist immer so wobei die Zahk zweistellig sein kann.
 
Versuche es mal damit:

Code:
#!/bin/bash

HAUPT=~/Hauptordner

zeroes="0000000"
for UNTER1 in "$HAUPT"/*; do
	for UNTER2 in "$UNTER1"/*; do
		folder=$(basename "$UNTER2")
	 	i=${folder##* }
	 	I=$zeroes$i
	 	I=${I:(-2)}
	 	j=1
	 	for FILE in "$UNTER2"/*; do
	 		J=$zeroes$j
	 		J=${J:(-2)}
	 		mv "$FILE" "$(dirname "$FILE")/$(basename "$UNTER1") S${I}E${J}.${FILE/*./}"
	 		let "j++"
	 	done
	done
done
 
Zuletzt bearbeitet:
Mega deine Skills hätte ich gerne :)

Info: Habe im Autoit ein ganzen Abend ~3-4 stunden gebraucht um es im Windows umzusetzen :D
 
Zurück
Oben