Um, abych nezapomněl
sort --random-sort
shuf
je nejlepší způsob.
sort -R
je bolestně pomalý. Právě jsem se pokusil seřadit 5GB soubor. Po 2,5 hodinách jsem to vzdal. Poté shuf
seřadíte to za minutu.
A dostanete jednu vložku Perl!
perl -MList::Util -e 'print List::Util::shuffle <>'
Používá modul, ale modul je součástí distribuce kódu Perl. Pokud to nestačí, můžete zvážit použití vlastního.
Zkoušel jsem to použít s -i
příznak („edit-in-place“), aby mohl soubor upravit. Dokumentace naznačuje, že by to mělo fungovat, ale nefunguje. Stále zobrazuje zamíchaný soubor na stdout, ale tentokrát smaže originál. Navrhuji, abyste jej nepoužívali.
Zvažte skript 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
Netestováno, ale doufám, že funguje.