Você poderia fazer:
code=$(
awk '
NR == 3 {
for (i=1; i<=NF; i++)
if ($i > 5) { printf "%s", sep "$" i; sep="," }
exit sep == ""
}' file
) &&
awk "{print $code}" file
Isso é chamada awk
duas vezes no mesmo arquivo. O primeiro lê a terceira linha para construir o código para a segunda invocação awk
. Ele sai depois de processar a terceira linha, portanto, não lerá todo o arquivo completamente. Ele gera algo como $5,$6,$7
, então a próxima invocação de awk
se torna:
awk '{print $5,$6,$7}' file