利用正则表达式,给MAC地址补0

原输出的含MAC地址的结果为:

       STRING: 0:de:fb:d8:b:d2

客户要求把MAC中只有1位的,前面要补0,变为

       STRING: 00:de:fb:d8:0b:d2

还要求写成通用的方式。

 

Shell 正则表达式有2中方式

1. 直接补0

$ echo 'STRING: 0:d:f:d:b:d'| sed 's/\(:\|\s\)\([0-9a-f]\)\(:\|$\)/\10\2\3/g' | sed 's/\(:\|\s\)\([0-9a-f]\)\(:\|$\)/\10\2\3/g'
STRING: 00:0d:0f:0d:0b:0d

2. 先加0,然后把有3位的去掉前面的0

$ echo 'STRING: 0:f:f:d:b:d' | sed "s/\(:\|\s\)\([a-f0-9]\+\)/\10\2/g" | sed "s/0\([a-f0-9]\{2\}\)/\1/g"
STRING: 00:0f:0f:0d:0b:0d

 

Perl正则表达式比较简单

[root@ispimos ~]# echo 'STRING: 0:f:f:d:b:d' | perl -pe "s/(?<=:|\s)([a-f0-9A-F])(?=:|$)/0\1/g"
STRING: 00:0f:0f:0d:0b:0d
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值