Você pode usar sed
para isso.
$ cal|sed -e '1n;s/\(..\)\(.\)/,/g'
May 2012
Su, Mo, Tu, We, Th, Fr, Sa
, , 1, 2, 3, 4, 5
6, 7, 8, 9, 10, 11, 12
13, 14, 15, 16, 17, 18, 19
20, 21, 22, 23, 24, 25, 26
27, 28, 29, 30, 31
1n
imprime a primeira linha e passa para a próxima. O substituto então pega os caracteres três por três e imprime os dois primeiros seguidos por ,
e depois o terceiro.