Questo script mescola i file e li rimescola se sono già stati mescolati. Se si passa un argomento di -u
, i file verranno rimossi (rimuovere il prefisso casuale).
#!/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
Si utilizza un cinque cifre numero casuale larghezza fissa dopo un "1", seguita da "9-" quindi i nomi mescolate sono di forma: 1ddddd9-filename maybe with spaces - and other stuff.1983.mp3
.
Se si esegue nuovamente lo script, i file verranno rimescolati modificando il numero casuale nel prefisso.
L'argomento -u
rimuoverà il prefisso 1ddddd9-
.
Lo script richiede Bash> = versione 3.2.
fonte
2010-07-04 20:47:45
potrebbe voler eseguire i suggerimenti seguenti tramite '\' printf% 05d $ RANDOM \ '-" $ i "' primo –