[英]How can i replace the existing mac add with a new mac address using sed
[英]How can I get the field number that contains a MAC address with sed or awk?
我正在尝试获取包含某种模式的字段编号(在本例中为MAC地址)。 想象我们有这样的事情:
AAA BBB CCC xx:xx:xx:xx:xx:xx EEE FFF GGG
其中xx:xx ...是MAC地址,因此x是字母数字。
如果使用该行作为输入,我想获取MAC地址所在的字段的编号。 在这种情况下,为“ 4”。
我当时在想sed或awk,但不知道如何输出字段号。
使用for循环使用正则表达式检查每个字段,将POSIX字符类用于十六进制数字。 找到匹配项时,打印匹配的字段号。
echo 'AAA BBB CCC 00:00:00:00:00:00 EEE FFF GGG' |
awk '{ for (i=1; i<=NF; i++)
if ($i ~ /^([[:xdigit:]]{2}:){5}[[:xdigit:]]$/)
print i
next
}'
4
sed可以工作:
echo YOUR_STRING | sed -n 's/.*\([a-zA-Z0-9]\{2\}\(:[a-zA-Z0-9]\{2\}\)\{5\}\).*/\1/p'
例:
echo abc ab:ab:ab:ab:ab:ab abc | sed -n 's/.*\([a-zA-Z0-9]\{2\}\(:[a-zA-Z0-9]\{2\}\)\{5\}\).*/\1/p'
ab:ab:ab:ab:ab:ab
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.