У меня есть файл 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
