Bash
Shell腳本,從“MAC:”之後的命令控制台輸出中獲取/提取mac地址
我正在嘗試使用 shell 腳本自動提取 arduino 設備的 mac 地址,並且需要一些幫助來執行此操作。
這是命令返回的輸出:
Opening /dev/cu.SLAB_USBtoUART @ 115200... Connecting to ESP32 ROM, attempt 1 of 10... Connecting to ESP32 ROM, attempt 2 of 10... Connected, chip: ESP32D0WDQ5 R1 efuse_wr_disable : 0x0084 efuse_rd_disable : 0x1 flash_crypt_cnt : 0x01 (WD) WIFI_MAC_Address : 0xaaaaaaaaaaaaaa (MAC: aa:bb:cc:dd:ee:ff) SPI_pad_config_hd : 0x0 chip_package : 0x1 cpu_freq_low : 0x0
我能夠將其擷取到 shell 腳本變數中,但是很難嘗試僅提取
aa:bb:cc:dd:ee:ff
輸出將始終完全相同,
(MAC:
後跟組成 mac 地址的 17 個字元,然後是結束)
有人可以幫我一個命令,我可以在所有這些輸出都儲存在其中的變數上使用,以獲取
aa:bb:cc:dd:ee:ff
部分嗎?我一直在尋找和嘗試幾個小時沒有運氣,謝謝!
你可以試試
awk
my_command_with_output | awk -F'[()]' '/^WIFI_MAC_Address/{sub(/^.*: /,"");print $1}'
你可以把它放在一個變數中
variable=$(my_command_with_output | awk -F'[()]' '/^WIFI_MAC_Address/{sub(/^.*: /,"");print $1}')
列印出變數的內容。
echo "$variable"
輸出
aa:bb:cc:dd:ee:ff
如果我理解正確:
echo "$var" | grep -o "..:..:..:..:.."
輸出:
aa:bb:cc:dd:ee:ff