linux 用awk给MAC地址加冒号?

cwdobuhd  于 2023-10-16  发布在  Linux
关注(0)|答案(4)|浏览(138)

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

$ 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
jjhzyzn0

jjhzyzn01#

另一种方式

$ 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
yhived7q

yhived7q2#

还有一个:

echo 0123456789ab | awk '{gsub(/..\B/,"&:")}1'
mpgws1up

mpgws1up3#

另一种方法是利用gawk的FIELDWIDTHS

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

58wvjzkj4#

你能试着跟着我吗。

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

相关问题