#!/usr/bin/gawk -f BEGIN { srand(systime()) } { do { i = rand() } while (i in line) num[NR] = i line[i] = $0 } END { n = asort(num) for (j = 1; j <= n; j++) { i = num[j] if (!(i in line)) print "ERROR: lines lost" >"/dev/stderr" print line[i] delete line[i] } }