KSH で「12345」を「1.2.3.4.5」に変換するにはどうすればよいでしょうか?

KSH で「12345」を「1.2.3.4.5」に変換するにはどうすればよいでしょうか?

KSH で文字列があり12345、それを に変換したい場合は1.2.3.4.5、どうすればいいでしょうか?

使ってみましたcutが、簡単ではありません。

echo "12345" | cut -c1

答え1

義務的なawk回答:

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

出力は次のとおりです。

1.2.3.4.5

回答は、以下の解決策の1つから変更されています。このスタックオーバーフロー役職。

答え2

Perl 正規表現 (ルックアップとバック参照付き) の回答は、最後の 1 つを除くすべてを、すべてプラスドットで置き換えます (これが質問の内容であると仮定)。

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

答え3

OpenSolaris 上の ksh と /usr/bin/sed でテストされた sed ソリューション

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

関連情報