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)
其他方式
$ 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)