Você pode fazer isso em awk
, mas obter a seleção aleatória de linhas será complexo e exigirá a gravação de um pouco de código. Em vez disso, usaria awk
para obter as linhas que correspondem aos seus critérios e, em seguida, use a ferramenta padrão shuf
para escolher uma seleção aleatória:
$ awk '$3-$2>3 && $3-$2 < 10' file | shuf -n2
g 1 8
a 1 5
Se você executar isso algumas vezes, verá uma seleção aleatória de linhas:
$ for i in {1..5}; do awk '$3-$2>3 && $3-$2 < 10' file | shuf -n2; echo "--"; done
g 1 8
e 6 14
--
g 1 8
e 6 14
--
b 4 12
g 1 8
--
b 4 12
e 6 14
--
e 6 14
b 4 12
--
A ferramenta shuf
faz parte dos utilitários do GNU, portanto deve ser instalada por padrão na maioria dos sistemas Linux e facilmente disponível para a maioria dos * nix.