Chinaunix

标题: mac 地址补齐 [打印本页]

作者: oguy99    时间: 2013-03-06 12:29
标题: mac 地址补齐
现有这样的情况,需要对自动生成出来的mac地址格式化,要求如下:
比如随机生成的mac是 0:10:f3:10:a:1, 需要格式化为每段不足两位就补齐到2位,如 00:10:f3:10:0a:01

如何实现?
作者: Shell_HAT    时间: 2013-03-06 12:39
  1. echo 0:10:f3:10:a:1 | awk 'BEGIN{FS=OFS=":"}{for(i=1;i<=NF;i++)if(length($i)==1)$i=0$i}1'
复制代码

作者: oguy99    时间: 2013-03-06 14:00
完全可用,gawk
作者: seesea2517    时间: 2013-03-06 14:33
回复 2# Shell_HAT


    借机下蛋,再赠送一个sed:
  1. [seesea@UC ~]$ echo 0:10:f3:10:a:1 | awk 'BEGIN{FS=OFS=":"}{for(i=1;i<=NF;i++) $i=sprintf("%02s", $i)}1'
  2. 00:10:f3:10:0a:01

  3. [seesea@UC ~]$ echo 0:10:f3:10:a:1 | sed 's/\b[^:]\b/0&/g'
  4. 00:10:f3:10:0a:01
复制代码

作者: zooyo    时间: 2013-03-06 17:31
提示: 作者被禁止或删除 内容自动屏蔽
作者: yestreenstars    时间: 2013-03-06 17:46
回复 5# zooyo


    我也觉得很赞~
作者: seesea2517    时间: 2013-03-06 17:51
@yestreenstars
@zooyo

作者: 一棵菠菜    时间: 2013-03-07 11:19
本帖最后由 一棵菠菜 于 2013-03-07 11:20 编辑

来个python
  1. #!/usr/bin/env python
  2. a='0:10:f3:10:a:1'
  3. b=a.split(':')
  4. for i in range(0,len(b)):
  5.     if len(b[i])==1:
  6.             b[i]='0'+b[i]
  7. print ':'.join(b)

  8. 00:10:f3:10:a0:10
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2