Experimente o comando printf:
$ printf "%e\n" 2923174917395723957
2.923175e+18
Em sua localidade, ele deve usar, em vez de., é claro. Você também pode controlar o formato com mais precisão, como:
$ printf "%.3e\n" 2923174917395723957
2.923e+18
Algumas shells como o bash têm um printf chamado nativo, que pode ser diferente de qualquer comando printf que vem com o sistema, mas, em geral, você não deve notar qualquer diferença com comandos simples como acima. Você também pode usar o printf do Perl, que será bastante consistente.
$ perl -e 'printf "%.3e\n", 2923174917395723957'
2.923e+18