Если у меня есть строка 12345
и я хочу преобразовать ее в KSH 1.2.3.4.5
, как я могу это сделать?
Я пробовал использовать, cut
но это не так просто.
echo "12345" | cut -c1
решение1
Обязательный awk
ответ:
echo "12345" | awk '$1=$1' FS= OFS="."
Выходные данные:
1.2.3.4.5
Ответ изменен из одного из решений вэтот стек Overflowпочта.
решение2
Регулярное выражение Perl (с поиском и обратными ссылками) отвечает на замену всего на все-плюс-точка, за исключением последнего (предполагая, что это то, о чем был вопрос):
$ echo "12345" | perl -wlpe 's/(.(?=.))/$1\./g'
1.2.3.4.5
решение3
Решение sed, протестированное с ksh и /usr/bin/sed на OpenSolaris
echo "12345" | /usr/bin/sed -e 's/./&\./g' -e 's/\.$//'