Con KSH, ¿cómo convertir “12345” a “1.2.3.4.5?”

Con KSH, ¿cómo convertir “12345” a “1.2.3.4.5?”

Con KSH, si tengo una cadena 12345y quiero convertirla 1.2.3.4.5, ¿cómo puedo hacerlo?

Intenté usarlo cutpero no es sencillo.

echo "12345" | cut -c1

Respuesta1

Respuesta obligatoria awk:

echo "12345" | awk '$1=$1' FS= OFS="."

La salida es:

1.2.3.4.5

La respuesta se modifica de una de las soluciones eneste desbordamiento de pilacorreo.

Respuesta2

Respuesta de Perl regex (con búsquedas y referencias inversas) para reemplazar todo por todo más un punto excepto el último (suponiendo que esa fuera la pregunta):

$ echo "12345" | perl -wlpe 's/(.(?=.))/$1\./g'
1.2.3.4.5

Respuesta3

Una solución sed probada con ksh y /usr/bin/sed en OpenSolaris

echo "12345" | /usr/bin/sed -e 's/./&\./g' -e 's/\.$//'

información relacionada