Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 在shell中的字母数字字符串中,每两个字母后添加一个冒号_Bash_Shell_Ksh - Fatal编程技术网

Bash 在shell中的字母数字字符串中,每两个字母后添加一个冒号

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 用同一对字符加上:替换每对不重叠的字符。

所以我有一个字母数字字符串10006cc2190ab011,我试图在这个字母数字字符串中每两个字母后面加一个冒号

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%:}