Ich habe mehrere Zip-Dateien in einem Hauptverzeichnis, die rekursiv neu gepackt werden müssen. Diese Dateien enthalten Leerzeichen, Apostrophe, Unterstriche usw.
advzip
funktioniert nicht, da es eine nicht unterstützte Komprimierungsmethode meldet (ein Grund, warum sie neu gepackt werden müssen). Alle diese Dateien werden entpackt, sie müssen nur mit etwas Automatisierung neu gepackt/gepackt werden, da es Tausende sind.
Die Dateien wurden ursprünglich unter Windows mit MP3+G Toolz für eine Karaoke-Bibliothek erstellt.
Betriebssystem: Linux Mint 18
Skriptschreiben: Anfänger
for file in *.zip
do
unzip -j "$file"
rm -f "$file"
zip -mq "$file" *.mp3 *.cdg *.MP3 *.CDG *.Mp3 *.Cdg
rm -f *.mp3 *.cdg *.MP3 *.CDG *.Mp3 *.Cdg
done
Oben steht, was ich suche, größtenteils. Da ich aber nicht gut mit Skripten umgehen kann, bin ich mir nicht sicher, wie ich das auch für alle Zip-Dateien in Unterverzeichnissen machen kann. Beispiel für einen Dateinamen:
SC0000-01 - Someone - Something.zip
Die Dateien in der ZIP-Datei sind
SC0000-01 - Someone - Something.cdg
SC0000-01 - Someone - Something.mp3
Antwort1
wenn ich advzip erwähne, gehe ich davon aus, dass Sie Linux verwenden. Hier können Sie ein einfaches Skript schreiben, das jede Datei in einer Schleife durchläuft
for f in *;
do;
unzip $f;
done
hoffe, das hilft, andernfalls wäre es ratsam, etwas mehr Details anzugeben.
Antwort2
Sofern ich es nicht unnötig kompliziert gemacht habe:
find . -name "*.zip" -print0 | while read -d $'\0' file
do
unzip -j "$file"
rm -f "$file"
zip -mq "$file" *.mp3 *.cdg *.MP3 *.CDG *.Mp3 *.Cdg
rm -f *.mp3 *.cdg *.MP3 *.CDG *.Mp3 *.Cdg
done