Ehm, non dimentichiamolo
sort --random-sort
shuf
è il modo migliore.
sort -R
è dolorosamente lento. Ho appena provato a ordinare il file da 5 GB. Ho rinunciato dopo 2,5 ore. Quindi shuf
risolto in un minuto.
E avrai una battuta Perl!
perl -MList::Util -e 'print List::Util::shuffle <>'
Utilizza un modulo, ma il modulo fa parte della distribuzione del codice Perl. Se questo non è abbastanza buono, potresti prendere in considerazione l'idea di crearne uno tuo.
Ho provato a usarlo con il -i
flag ("edit-in-place") per modificare il file. La documentazione suggerisce che dovrebbe funzionare, ma non è così. Visualizza ancora il file mescolato su stdout, ma questa volta elimina l'originale. Ti suggerisco di non usarlo.
Considera uno script di shell:
#!/bin/sh
if [[ $# -eq 0 ]]
then
echo "Usage: $0 [file ...]"
exit 1
fi
for i in "[email protected]"
do
perl -MList::Util -e 'print List::Util::shuffle <>' $i > $i.new
if [[ `wc -c $i` -eq `wc -c $i.new` ]]
then
mv $i.new $i
else
echo "Error for file $i!"
fi
done
Non testato, ma si spera funzioni.