2017-08-02 223 views
1

我想grep MAC地址arp -n从IP获取Mac地址(bash)

我尝试这样做:$ arp | grep 192.168.15.1 | awk '{print $3}'

但我最终是这样的:

00:00:00:00:00:00 
00:00:00:00:00:00 
00:00:00:00:00:00 
00:00:00:00:00:00 
00:00:00:00:00:00 
00:00:00:00:00:00 

我删了淅淅沥沥

我想只有一个MAC地址,我怎样才能得到它?

+0

分配的bash的$1给变量a在原始解决方案如果你使用'grep -m1',那么你会得到想要的结果,尽管一起使用'grep'和'awk'是多余的,因为'awk'几乎能够完成'grep'能够做的所有事情。 –

回答

2
arp | awk '/192.168.15.1/{print $3;exit}' 

通过使用此命令,你会得到只有1 MAC。

如果你想收养bash脚本的输入是地址,使用下面的命令,

arp -n $1 | awk -v a=$1 '$0 ~ a{print $3;exit}' 

使用-v a=$1awk

+0

'arp ​​-n 192.168.15.1 | awk'/192.168.15.1/{print $ 3; exit}'' 这对我有用:) 我会写这样的Bash脚本:' arp -n $ 1 | awk'/'$ 1'/ {print $ 3; exit}'' – MrFlyingToasterman

+0

arp已弃用,使用它会导致您的脚本在某些时候失败,除非您不升级系统,使其非常容易 – netizen

+1

@MrFlyingToasterman,请参阅我的修改答案,如果你想在bash中使用它 – CWLiu

1
ip -brief link show |grep -v LOOPBACK|awk '{print $3;}' 
+0

我需要一个远程MAC不是我自己的。 – MrFlyingToasterman

+1

只需将链接更改为邻居 – netizen