0

このコマンドでは、1つのコマンドで現在の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-swlan0|のようなことをしたいと思います grep ...正確に14:25:47:ff:c4:aaを取得するためにそして00:24:54:f0:5c:ccを取得するための別のコマンドありがとう

4

6 に答える 6

2

'Permanent'行を取得するには:

macchanger -s wlan0 | awk '/Permanent/ { print $3 }'

'Current'行を取得するには:

macchanger -s wlan0 | awk '/Current/ { print $3 }'
于 2012-11-01T00:12:20.300 に答える
1

grepが必要な場合:

macchanger -s wlan0 | grep Permanent | grep -P -o '..:..:..:..:..:..'
macchanger -s wlan0 | grep Current | grep -P -o '..:..:..:..:..:..'
于 2012-11-01T00:14:38.040 に答える
1

grepアドレスごとに1つ:

grep -P -o '(?<=Permanent MAC: )[a-zA-Z0-9:]+'
grep -P -o '(?<=Current MAC: )[a-zA-Z0-9:]+'
于 2012-11-01T00:15:40.273 に答える
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; GNUsedは時々それ自身の心を持っていますが、それはこれらを受け入れ、期待通りに機能します。

于 2012-11-01T00:11:18.693 に答える
0

あなたがやりたいことをする-oオプション。grep例えば:

grep -o '[0-9a-f:]\{17\}'
于 2012-11-01T00:12:32.263 に答える
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]
于 2012-11-01T00:45:15.207 に答える