| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #!/usr/bin/env perl
- # Copyright 2013 Johns Hopkins University (author: Daniel Povey)
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- # KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
- # WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
- # MERCHANTABLITY OR NON-INFRINGEMENT.
- # See the Apache 2 License for the specific language governing permissions and
- # limitations under the License.
- if ($ARGV[0] eq "--srand") {
- $n = $ARGV[1];
- $n =~ m/\d+/ || die "Bad argument to --srand option: \"$n\"";
- srand($ARGV[1]);
- shift;
- shift;
- } else {
- srand(0); # Gives inconsistent behavior if we don't seed.
- }
- if (@ARGV > 1 || $ARGV[0] =~ m/^-.+/) { # >1 args, or an option we
- # don't understand.
- print "Usage: shuffle_list.pl [--srand N] [input file] > output\n";
- print "randomizes the order of lines of input.\n";
- exit(1);
- }
- @lines;
- while (<>) {
- push @lines, [ (rand(), $_)] ;
- }
- @lines = sort { $a->[0] cmp $b->[0] } @lines;
- foreach $l (@lines) {
- print $l->[1];
- }
|