Wie konvertiert man mit KSH „12345“ in „1.2.3.4.5“?

Wie konvertiert man mit KSH „12345“ in „1.2.3.4.5“?

Wenn ich einen String habe 12345und ihn in konvertieren möchte 1.2.3.4.5, wie kann ich das mit KSH machen?

Ich habe versucht, es zu verwenden cut, aber es ist nicht so einfach.

echo "12345" | cut -c1

Antwort1

Obligatorische awkAntwort:

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

Die Ausgabe lautet:

1.2.3.4.5

Die Antwort wurde von einer der Lösungen in geändertdieser Stack OverflowPost.

Antwort2

Perl-Regex (mit Nachschlagevorgängen und Rückverweisen) antwortet, alles außer dem letzten Punkt durch alles plus einen Punkt zu ersetzen (vorausgesetzt, das war die Frage):

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

Antwort3

Eine mit ksh und /usr/bin/sed auf OpenSolaris getestete Sed-Lösung

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

verwandte Informationen