使用awk将冒号添加到MAC地址?

时间:2018-11-09 15:08:34

标签: linux bash awk

下面您看到了我的真实代码,我想它可以简化为

$ echo 123456789012 | awk '{print $1}'
123456789012

问题

如何获取awk来添加冒号,而改为输出12:34:56:78:90:12

grep -v '^#' $hosts | grep -E '[0-9A-F]{12}\b' | grep -v 000000000000 | awk '{
    print "host "$5" {"
    print "  option host-name \""$5"\";"
    print "  hardware ethernet "$3";"
    print "  fixed-address "$1";"
    print "}"
    print ""
}' > /etc/dhcp/reservations.conf

4 个答案:

答案 0 :(得分:3)

另一种方式

$ echo 123456789012 | fold -w2 | paste -sd:

12:34:56:78:90:12

这是另一个gawk版本

$ echo 123456789012 | awk -v FPAT='..' -v OFS=':' '{$1=$1}1'

12:34:56:78:90:12

答案 1 :(得分:3)

另一种方法是利用gawk的FIELDWIDTHS

awk -v FIELDWIDTHS='2 2 2 2 2 2' -v OFS=":" '1+($1=$1)'

答案 2 :(得分:2)

一个:

CALL calcPro('2018-03-31');

答案 3 :(得分:1)

请您尝试以下。

echo 123456789012 | awk '{gsub(/../,"&:");sub(/:$/,"")} 1'