使用 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

答案是从其中一个解决方案修改而来的这个 Stack Overflow邮政。

答案2

Perl 正则表达式(带有查找和反向引用)的答案是将除最后一个之外的所有内容替换为所有内容加一个点(假设这是问题所在):

$ 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/\.$//'

相关内容