我正在编写一个shell脚本来自动执行mac欺骗。在我编写的脚本中,我将#!bin/bash的输出等价于两个不同的变量。命令ifconfig -a | grep HWaddr返回

eth0  Link encap:Ethernet HWaddr 00:00:00:00:00:00


wlan0 Link uncap: Ethernet HWaddr 00:00:00:00:00:00

但我希望命令只返回ifconfig -a | grep HWaddr的mac地址。

最佳答案

尝试:

[root@linux ~]$ /sbin/ifconfig wlan0 | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}'
00:25:90:F0:3F:92

通过将wlan0指定为ifconfig的第一个参数,可以告诉它您只需要有关该特定接口的信息,因此您应该只返回一行。
然后,grep命令在输出中搜索mac地址,并只打印与之匹配的ifconfig输出部分。
或者
为了你的剧本,你可以试着如下:
ifconfig -a | grep HWaddr | awk '{print $5}'

OSX
ifconfig en1 | awk '/ether/{print $2}'

09-10 00:12
查看更多