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

San*_*ing 1 regex linux bash awk

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

$ echo 123456789012 | awk '{print $1}'
123456789012
Run Code Online (Sandbox Code Playgroud)

问题

我怎样才能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
Run Code Online (Sandbox Code Playgroud)

kar*_*kfa 6

其他方式

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

12:34:56:78:90:12
Run Code Online (Sandbox Code Playgroud)

这是一个不同的gawk版本

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

12:34:56:78:90:12
Run Code Online (Sandbox Code Playgroud)


ste*_*fen 5

多一个:

echo 0123456789ab | awk '{gsub(/..\B/,"&:")}1'
Run Code Online (Sandbox Code Playgroud)