Multivolume RAR Archive richtig benennen

Ich habe hier ein paar Multi Volumen Archive RAR-Dateien ohne korrekte Benennung.
Es scheint keine einfache Möglichkeit zu geben, diese korrekt zu benennen, rar selber kann aber die Nummer der Datei innerhalb des Archives ausgeben:

unrar vt dateixxx.rar

Im Text-Ende steht dann etwas von “Volume xxx”.

Wie aber erstelle ich mir daraus wieder die ‘richtigen’ Namen bzw. einen Namen über den ich das Archiv dann wieder richtig auspacken kann?

Das hier ist immerhin ein Anfang. Mal sehen, ob ich es noch besser hin bekomme.

for f in *.rar; do echo -n "mv $f "; unrar v "$f" | sed -n 12p | awk 'BEGIN {ORS=""}/volume /{printf "%-2s", $NF}'; echo - ".rar" ; done;

Gelistet wird jeweils der alte Dateiname plus die Information, welche Reihenfolge sie tatsächlich im Archiv hat.

Inzwischen habe ich eine erheblich verbesserte Version, die das erstellen eines Skripts für die Umbenennung in sich trägt:

for f in *; do echo -n "mv $f "; unrar v "$f" | tail -n2 | head -n1 | awk -F"volume" '{ print $2 }' | awk -F" " 'BEGIN {ORS=""}{printf("archive.part.%03d.rar\n", $1)}'; done;

Und noch eine Version, die jetzt versucht anhand der Dateigröße einen korrekten Namen zu bilden.

for f in *; do echo -n “mv $f “; unrar vt “$f” | awk -F”Size:” ‘{ print $2 }’ | sed ‘/^$/d’ | sort -b -g -r | head -n1| tr -d ‘ ‘ | awk -F” ” ‘BEGIN {ORS=””}{printf(“%s”, $1)}’; unrar v “$f” | tail -n2 | head -n1 | awk -F”volume” ‘{ print $2 }’ | awk -F” ” ‘BEGIN {ORS=””}{printf(“.part%03d.rar\n”, $1)}’; done | tee > rename.sh

das scheitert allerdings bei Archivdateien des gleichen Volumes, die mehr als eine Datei enthalten<, da dann für/del>

awk -F"Size:" '{ print $2 }'

Das stimmt jetzt auch nicht mehr. Die korrigierte Version verwendet jetzt eine kombination aus numerischem “sort” + “head” um die Größe der größten Datei des Archives als Dateinamen zu verwenden. Das hat in meinem Beispielen wunderbar funktioniert.

Hier eine neuere Variante, die innerhalb der erzeugten Datei nach Endungen sortiert:

for f in *; do echo -n "mv $f "; unrar vt "$f" | awk -F"Size:" '{ print $2 }' | sed '/^$/d' | sort -b -g -r | head -n1| tr -d ' ' | awk -F" " 'BEGIN {ORS=""}{printf("%s", $1)}'; unrar v "$f" | tail -n2 | head -n1 | awk -F"volume" '{ print $2 }' | awk -F" " 'BEGIN {ORS=""}{printf(".part%03d.rar\n", $1)}'; done | sort -k3 | tee > rename.sh 2>&1

Um die Schleife sicherer zu machen könnte man hier noch find einsetzen, damit kann man dann die Dateien auf eine Verzeichnis-Hierarchie und auf nur Dateien einschränken.

find ./ -type f -maxdepth 1 -name "*"|while read f; do echo "$f"; done

Atlas Cloud

Wer hat außer mir eigentlich noch Katy Karrenbauer erkannt?

Sie steht bei der Pubscene mit den Heiminsassen im Publikum als Einsilbige auf dem Tisch steht und schreit.

Verschwörungstheoretiker-Idee

Ist eigentlich noch keiner darauf gekommen, dass der Versuch mit dem LHC (ihr wisst schon, die Sache mit der Übertretung des Tempolimits namens Lichtgeschwindigkeit) möglicherweise gar kein Fehler war, sondern die spätere Zurücknahme (nur ein loses Kabel oder sowas) nur der Versuch sein könnte unsere aktuelle Realität den überlieferten Theorien wieder anzupassen? Vielleicht weil die Rechner die unsere Realität simulieren einen Bug haben oder so etwas?

Ok, vielleicht ja auch weit her geholt. Aber 13th Floor ist immer wieder schön.