com gnu sed/shuf
:
sed '1b;s/^*/\x0*/' infile | shuf -zn 5 | tr -d 'sed '1b;s/^*/\x0*/' infile | shuf -zn 5 | tr -d '%pre%0'
0'
Isso transforma a entrada em registros separados nulos, ou seja, em cada linha que começa com *
(exceto a primeira), adiciona um caracter antes que a *
use shuf
com --zero-terminated
para extrair cinco registros aleatórios e tr
para excluir esses caracteres nulos.