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