Um, jangan lupa
sort --random-sort
shuf
adalah cara terbaik.
sort -R
sangat lambat. Saya baru saja mencoba mengurutkan file 5GB. Saya menyerah setelah 2,5 jam. Lalu shuf
mengurutkannya dalam satu menit.
Dan satu baris Perl yang Anda dapatkan!
perl -MList::Util -e 'print List::Util::shuffle <>'
Ini menggunakan modul, tetapi modul tersebut adalah bagian dari distribusi kode Perl. Jika itu tidak cukup baik, Anda dapat mempertimbangkan untuk meluncurkannya sendiri.
Saya mencoba menggunakan ini dengan -i
tandai ("edit-in-place") untuk mengedit file. Dokumentasi menyarankan itu harus berfungsi, tetapi tidak. Itu masih menampilkan file yang diacak ke stdout, tetapi kali ini menghapus yang asli. Saya sarankan Anda tidak menggunakannya.
Pertimbangkan skrip 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
Belum diuji, tapi semoga berhasil.