जवाबों:
आप GNU कोरुटिल्सshuf
से कमांड का उपयोग कर सकते हैं । उपयोगिता बहुत तेज है और 1 जीबी फ़ाइल को फेरबदल करने में एक मिनट से भी कम समय लगेगा।
नीचे दी गई कमांड सिर्फ आपके मामले में काम कर सकती है क्योंकि shuf
आउटपुट फ़ाइल खोलने से पहले पूरा इनपुट पढ़ेंगे:
$ shuf -o File.txt < File.txt
brew install coreutils
और उपयोग करें /usr/local/bin/gshuf
।
cat myfile | perl -MList::Util=shuffle -e 'print shuffle(<STDIN>);'
मुझे यकीन है कि हालांकि यह कितनी तेजी से चलेगा
पायथन वन-लाइनर:
python -c 'import sys, random; L = sys.stdin.readlines(); random.shuffle(L); print "".join(L),'
मानक इनपुट से सभी पंक्तियों को पढ़ता है, उन्हें इन-प्लेस में फेरबदल करता है, फिर उन्हें एक समाप्त होने वाली नई पंक्ति ( ,
अंत से नोटिस ) को जोड़े बिना प्रिंट करता है ।
OSX के लिए बाइनरी कहा जाता है gshuf
।
brew install coreutils
gshuf -o File.txt < File.txt
अगर मेरी तरह तुम यहाँ shuf
macOS के लिए एक वैकल्पिक के लिए देखने के लिए आया था तो उपयोग करें randomize-lines
।
स्थापित करें randomize-lines
(होमब्रे) पैकेज, जिसमें एक rl
कमांड है जिसकी कार्यक्षमता समान है shuf
।
brew install randomize-lines
Usage: rl [OPTION]... [FILE]...
Randomize the lines of a file (or stdin).
-c, --count=N select N lines from the file
-r, --reselect lines may be selected multiple times
-o, --output=FILE
send output to file
-d, --delimiter=DELIM
specify line delimiter (one character)
-0, --null set line delimiter to null character
(useful with find -print0)
-n, --line-number
print line number with output lines
-q, --quiet, --silent
do not output any errors or warnings
-h, --help display this help and exit
-V, --version output version information and exit
मैं भूल गया कि मुझे यह कहां मिला है, लेकिन यहां shuffle.pl
मैं इसका उपयोग करता हूं:
#!/usr/bin/perl -w
# @(#) randomize Effectively _unsort_ a text file into random order.
# 96.02.26 / drl.
# Based on Programming Perl, p 245, "Selecting random element ..."
# Set the random seed, PP, p 188
srand(time|$$);
# Suck in everything in the file.
@a = <>;
# Get random lines, write 'em out, mark 'em done.
while ( @a ) {
$choice = splice(@a, rand @a, 1);
print $choice;
}
कम से कम ubuntu में, वहाँ एक कार्यक्रम कहा जाता है shuf
shuf file.txt