2013-02-22 42 views
2

我有一个字符串20000024ff3dbf50,我想将它转化,如:20:00:00:24:ff:3d:bf:50,我试着sed添加符号,每2个字节

echo 20000024ff3dbf50 | sed 's/\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)/\1:\2:\3:\4:\5:\6:\7:\8/'

,但它是一个有点难看。

+0

肯定有一个更好的办法。 – 2013-02-22 09:08:12

回答

4

两个取代:

echo "20000024ff3dbf50" | sed 's/../&:/g;s/.$//' 

结果:

20:00:00:24:ff:3d:bf:50 
2
echo 20000024ff3dbf50 | grep -o .. | paste -d ':' -s - 

grep的与输入-o分割到每行2个字符; 贴使用分隔符 ':' 垫他们[-s] erially

+0

+1,不错的组合。 – Thor 2013-02-22 09:27:33

1

您也可以使用这个GNU AWK自动拆分:

echo 20000024ff3dbf50 | awk '$1=$1' FPAT=.. OFS=: 

输出:

20:00:00:24:ff:3d:bf:50 
相关问题