summaryrefslogtreecommitdiff
path: root/shuf.sh
blob: 8fa7d8ad17c34eba89fb53d2b4732ab23ffb138d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
exec awk "$(tail -n +2 $0)" "$@"

{
	lines[NR] = $0;
	printed[NR] = 0;
}

END {
	nprinted = 0;
	srand();
	while (nprinted < NR) {
		line = int(rand() * NR);
		if (!printed[line]) {
			print lines[line];
			printed[line] = 1;
			nprinted++;
		}
	}
}