É o seu IFS =: não definido corretamente. Então split () não preenche o array com valores mas preenche com um valor o str2, então no seu loop for você imprime b [i] mas na verdade você imprime uma vez b [1] que é toda sua str2 e porque ela tem novas linhas que você acha que imprime membros da matriz b, mas se você verificar m o valor retrn de split () é 1. Remova IFS =: e seu script deve funcionar corretamente.