1

私は bash スクリプトを開発していて、複雑な正規表現の助けが必要です...少なくとも私には複雑です!

カードをモニター モードにした後、出力のバリエーションがほとんどない可能性があります。ディストリビューションと aircrack スイートのバージョンによっては、バリエーションがほとんどありません。解析する必要があるいくつかの文字列は次のとおりです。

(mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon)
(mac80211 monitor mode vif enabled on [phy0]wlan0mon
(monitor mode enabled on wlanmon0)
(monitor mode enabled on wlanmon0

これらの文字列からインターフェイスの新しい名前を取得する必要があります...この場合は wlan0mon ですが、カードによって異なる場合があります。

ご覧のとおり、最後の括弧 ")" がある場合とない場合があります。そして、[何か]を持っていることもあれば、持っていないこともあります。これらのバリエーションで「on」(onの後のスペースに注意)から最後まで取る必要があります...アプローチはありますが、喜びはありません。「]」を含む文字列でのみ機能し、すべての可能性を回避する方法がわかりません。

[[ ${new_interface} =~ ^(.*)\]+([a-zA-Z0-9]+)\)?$ ]] && new_interface="${BASH_REMATCH[2]}"

なにか提案を?ありがとう!

4

2 に答える 2

1

これははるかに簡単になります

[[ ${new_interface} =~ \]?([A-Za-z0-9]+)\)?$ ]] && new_interface="${BASH_REMATCH[1]}"
于 2016-05-29T11:21:24.090 に答える