Bash 在shell中的字母数字字符串中,每两个字母后添加一个冒号
所以我有一个字母数字字符串10006cc2190ab011,我试图在这个字母数字字符串中每两个字母后面加一个冒号Bash 在shell中的字母数字字符串中,每两个字母后添加一个冒号,bash,shell,ksh,Bash,Shell,Ksh,所以我有一个字母数字字符串10006cc2190ab011,我试图在这个字母数字字符串中每两个字母后面加一个冒号 this is the string : 10006cc2190ab011 i want it be - 10:00:6c:c2:19:0a:b0:11 提前感谢。Ased解决方案: $ echo 10006cc2190ab011 | sed 's/../&:/g; s/:$//' 10:00:6c:c2:19:0a:b0:11 用同一对字符加上:替换每对不重叠的字符。
this is the string : 10006cc2190ab011
i want it be - 10:00:6c:c2:19:0a:b0:11
提前感谢。A
sed
解决方案:
$ echo 10006cc2190ab011 | sed 's/../&:/g; s/:$//'
10:00:6c:c2:19:0a:b0:11
用同一对字符加上:
替换每对不重叠的字符。最后删除尾随的:
(如果输入文本的长度为偶数)
在不使用外部命令的情况下执行相同的替换,只使用ksh内部构件
执行与sed中相同的操作(另一个答案)。用
/
匹配的字符串和:
替换$str every/
中的两个字符??
(每个匹配都保存在ksh变量${.sh.match}
中)。然后打印$str,不带最后一个%
':' 谢谢!我到底在找什么你能解释一下吗?
str=10006cc2190ab011; str="${str//??/${.sh.match}:}"; echo ${str%:}