使用 grep 正则表达式从 arp table 中提取 MAC 地址

Extracting MAC Address from arp table using grep regex

我正在尝试从 arp table 中提取 MAC 地址,但它 return 是一个空行。

我尝试使用命令:

arp -a | grep eth1 | grep '^\A(([0-9a-fA-F]{2}):){5}([0-9a-fA-F]{2})$\z'

'arp -a'命令return:

? (192.168.36.20) at 80:e0:1d:43:b0:60 [ether] on eth1
? (192.168.0.1) at 34:4b:50:b7:ef:08 [ether] on usb0
? (172.17.140.200) at 10:c3:7b:c4:82:04 [ether] on eth0

谢谢

使用以下方法解决:

arp -a | grep eth1 | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}'

使用 awk 的更简单的方法:

$ arp | grep eth1 | awk '{print }'

有关更多信息,请参阅 GNU Awk 手册。