У меня есть текстовый файл с неизвестным количеством строк. Мне нужно взять некоторые из этих строк наугад, но я не хочу, чтобы был риск повторения.
Я попробовал это:
jot -r 3 1 `wc -l<input.txt` | while read n; do
awk -v n=$n 'NR==n' input.txt
done
Но это уродливо и не защищает от повторов.
Я также пробовал это:
awk -vmax=3 'rand() > 0.5 {print;count++} count>max {exit}' input.txt
Но очевидно, что это тоже неправильный подход, так как я не могу гарантировать даже получение max
строк.
Я застрял. Как мне это сделать?