使用此命令,我希望只有一个命令可以获取当前的mac地址,而另一个命令只能获取永久性mac。所以我必须使用grep表达式,但我不知道该怎么做。
$ macchanger -s wlan0
Permanent MAC: 14:25:47:ff:c4:aa (Twinhan)
Current MAC: 00:24:54:f0:5c:cc (unknown)
所以我真的想做像macchanger -s wlan0 |这样的事情grep ......为了得到14:25:47:ff:c4:aa 另一个命令得到00:24:54:f0:5c:cc 谢谢你
答案 0 :(得分:2)
获取“永久”行:
macchanger -s wlan0 | awk '/Permanent/ { print $3 }'
获取“当前”行:
macchanger -s wlan0 | awk '/Current/ { print $3 }'
答案 1 :(得分:1)
我认为使用sed
而不是grep
:
macchanger -s wlan0 | sed -n '/^Permanent/s/Permanent MAC: \([0-9a-fA-F:]*\) .*/\1/p'
macchanger -s wlan0 | sed -n '/^Current/s/Current MAC: \([0-9a-fA-F:]*\) .*/\1/p'
这适用于符合POSIX的sed
; GNU sed
有时会有自己的想法,但它接受这些并按预期工作。
答案 2 :(得分:1)
如果你想要grep:
macchanger -s wlan0 | grep Permanent | grep -P -o '..:..:..:..:..:..'
macchanger -s wlan0 | grep Current | grep -P -o '..:..:..:..:..:..'
答案 3 :(得分:1)
每个地址一个grep
:
grep -P -o '(?<=Permanent MAC: )[a-zA-Z0-9:]+'
grep -P -o '(?<=Current MAC: )[a-zA-Z0-9:]+'
答案 4 :(得分:0)
-o
的{{1}}选项可以满足您的需求。例如:
grep
答案 5 :(得分:0)
此解决方案取决于输出中结果的顺序:
declare -a results
results=($(macchangher -s wlan0 | egrep -oi '([a-f0-9]{2}:){5}[a-f0-9]{2}'))
perm=$results[0]
cur=$results[1]