基本语法
:label
sed序列指令
......
s/regex/replace
t label
问题
- 如何把f6e5d4c3b2a1这一串数字,转换为MAC地址的形式:f6:e5:d4:c3:b2:a1?
解答
echo f6e5d4c3b2a1 | sed -r ':abc;s/([^:]+)([0-9a-f]{2})/\1:\2/;t abc'
执行结果
命令解析
- 首先设定一个t label进行循环跳转
- 当执行到s命令之后,执行t跳转到开头继续执行
([^:]+)([0-9a-f]{2})
表示排除一个或多个":"的字符,取出任意2个数字或字母字符\1:\2
表示在两个字符段中间添加":"