$ sed -e 's/\(.\)\(..\)\(..\)/../' -e 's/\.0/./g' file
4.17.3
1.0.2
3.0.3
4.0.2
4.0.0
2.2.3
2.2.3
3.1.0
5.0.0
5.0.0
5.0.0
5.0.0
7.7.0
7.6.0
A primeira substituição sed
cria x.yy.zz
de xyyzz
. Ele faz isso capturando os três grupos de caracteres em grupos de captura separados (o \(.\)
e os dois \(..\)
em que cada ponto corresponde a um único caractere) e os insere novamente com pontos entre eles.
A segunda substituição remove qualquer zero imediatamente após um ponto.