Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Extracting MAC Address from arp table using grep regex

Tags:

regex

grep

bash

arp

I am trying to extract MAC address from arp table without but it is returning a empty line.

I tried to use the command:

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

The 'arp -a' command 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

Thanks

like image 765
Ricardo Avatar asked Mar 16 '23 08:03

Ricardo


2 Answers

Solved using:

arp -a | grep eth1 | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}'
like image 197
Ricardo Avatar answered Mar 23 '23 08:03

Ricardo


A much simpler way using awk:

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

See GNU Awk manual for more.

like image 35
CryptoPiggy Avatar answered Mar 23 '23 08:03

CryptoPiggy