У меня есть файл 10 ^ 7 строк, в котором я хочу выбрать 1/100 строк в случайном порядке из файла. Это код AWK, который у меня есть, но он перекрывает все содержимое файла перед рукой. Память моего ПК не может справиться с такими прерываниями. Есть ли другой подход к этому?
awk 'BEGIN{srand()}
!/^$/{ a[c++]=$0}
END {
for ( i=1;i<=c ;i++ ) {
num=int(rand() * c)
if ( a[num] ) {
print a[num]
delete a[num]
d++
}
if ( d == c/100 ) break
}
}' file