尝试获取MAC地址,a4:1f:72:6e:2a:cf,从这样的结果(见下文)保存在变量$ NewMAC中。发生这种情况的方法是将arp-scan输出到文本文件中,这就是结果。
Interface: eth2, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.8.1 with 1 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.1.100 a4:1f:72:6e:2a:cf (Unknown)
1 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.8.1: 1 hosts scanned in 0.143 seconds (6.99 hosts/sec). 1 responded
答案 0 :(得分:1)
grep -E ' ([[:xdigit:]]{2}:){5}[[:xdigit:]]{2} '
这将选择包含以太网地址的行。如果你有GNU grep
,你可以使用-o
来选择匹配的文本。如果空白很重要(你绝对不能拥有它们),那么你必须更加粗鲁(不要寻找空白)或使用较少的标准符号,例如\b
来表示单词的开头/结尾。
因此:
NewMAC=$(arp-scan ... | grep -E -o '\b([[:xdigit:]]{2}:){5}[[:xdigit:]]{2}\b')
如果您没有GNU grep
,可以使用| awk '{print $2}'
打印第二列输出。
NewMAC=$(arp-scan ... | grep -E ' ([[:xdigit:]]{2}:){5}[[:xdigit:]]{2} ' | awk '{print $2}')
答案 1 :(得分:1)
awk '/^[0-9]+[.][0-9]+[.][0-9][.][0-9]+/ {print $2}' arp-scan-output.txt