我正在開發一個bash腳本,需要一些複雜的正則表達式幫助...至少對我來說很複雜!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,但可以根據卡的不同。
正如你所看到的,有時候會有最後一個括號「)」,有時候沒有。有時我有[某事],有時候不是。我需要從「開始」(注意後面的空間)取出這些變化,直到結束......我有一種方法,但沒有快樂。它只適用於具有「]」的字符串,並且不知道如何避免所有可能性。
[[ ${new_interface} =~ ^(.*)\]+([a-zA-Z0-9]+)\)?$ ]] && new_interface="${BASH_REMATCH[2]}"
有什麼建議嗎?謝謝!
考慮在\使用字符類[A-ZA-Z0-9] '=〜\(\ [[[:alnum:]] + \]) ?([[:alnum:]] +)?\)$' – diwo