Dieses Skript mischt Dateien und mischt sie neu, wenn sie bereits gemischt wurden. Wenn Sie ein Argument von -u
übergeben, werden die Dateien unshuffle (entfernen Sie das zufällige Präfix).
#!/bin/bash
for file in *.mp3
do
if [[ -d $file ]]
then
continue # skip directories
fi
if [[ $file =~ ^1[0-9]{5}9-(.*).mp3$ ]] # get basename
then
name=${BASH_REMATCH[1]} # of a previously shuffled file
else
name=${file%.mp3} # of an unshuffled file
fi
if [[ $1 != -u ]]
then
mv "$file" "1$(printf "%05d" $RANDOM)9-$name.mp3" # shuffle
else
if [[ ! -e "$file.mp3" ]]
then
mv "$file" "$name.mp3" # unshuffle
fi
fi
done
Es verwendet eine feste Breite fünfstellige Zufallszahl nach einer „1“, gefolgt von „9-“ so die gemischten Dateinamen der Form sind: 1ddddd9-filename maybe with spaces - and other stuff.1983.mp3
.
Wenn Sie das Skript erneut ausführen, werden die Dateien neu gemischt, indem die Zufallszahl im Präfix geändert wird.
Das Argument -u
entfernt das Präfix 1ddddd9-
.
Das Skript erfordert Bash> = Version 3.2.
könnte die Vorschläge unten durch '\' printf% 05d $ RANDOM \ '-" $ i "' zuerst –