Houve uma resposta que foi excluída, embora um pouco errada, levou-me na direção correta.
Usar o strftime do gawk combinado com alguma aritmética me dá o que eu queria.
cat shadow | gawk -F: '{ print $1 ":" strftime("%Y%m%d",86400*$3) ":" strftime("%Y%m%d",86400*$4)}'
root:20120304:19691231
daemon:20100203:19691231
bin:20100203:19691231
sys:20100203:19691231