所以我有一个字母数字字符串10006cc2190ab011我试图在这个字母数字字符串中的每两个字母后添加一个冒号。
this is the string : 10006cc2190ab011
i want it be - 10:00:6c:c2:19:0a:b0:11
提前致谢。
答案 0 :(得分:2)
sed
解决方案:
$ echo 10006cc2190ab011 | sed 's/../&:/g; s/:$//'
10:00:6c:c2:19:0a:b0:11
用同一对加:
替换每对非重叠字符。最后删除尾随:
(如果输入文本的长度均匀)。
答案 1 :(得分:1)
str=10006cc2190ab011; str="${str//??/${.sh.match}:}"; echo ${str%:}
在不使用外部命令的情况下进行相同的替换,只使用ksh-internals。
与sed
中的相同(另一个答案)。将每个//
两个字符??
替换为$ str,其中/
匹配的字符串和:
(每个匹配都保存在ksh变量${.sh.match}
中)。然后在没有最后%
'的情况下打印$ str:'。