Um, no olvidemos
sort --random-sort
shuf
es la mejor manera.
sort -R
es dolorosamente lento. Acabo de intentar ordenar el archivo de 5GB. Me di por vencido después de 2,5 horas. Entonces shuf
lo arreglé en un minuto.
¡Y obtienes una frase de Perl!
perl -MList::Util -e 'print List::Util::shuffle <>'
Utiliza un módulo, pero el módulo es parte de la distribución del código Perl. Si eso no es lo suficientemente bueno, puede considerar enrollar el suyo propio.
Intenté usar esto con el -i
flag ("editar en el lugar") para que edite el archivo. La documentación sugiere que debería funcionar, pero no es así. Todavía muestra el archivo aleatorio en la salida estándar, pero esta vez elimina el original. Te sugiero que no lo uses.
Considere un script de 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
No probado, pero con suerte funciona.