Você pode usar o redirecionamento (ele é especificado por POSIX, portanto, deve estar disponível com outros problemas). Um exemplo simples:
$ awk '$1 % 2 {print > "odd"; next} {print > "even"}' <(seq 1 10)
$ tail -n +1 odd even
==> odd <==
1
3
5
7
9
==> even <==
2
4
6
8
10
Então, você poderia criar um array com 29 nomes de arquivos, ou construí-los usando variáveis ( print > "filenum" n
, n
sendo algum contador), ou ...