gpt4 book ai didi

linux - 使用 BASH 脚本抓取并封装文本

转载 作者:太空宇宙 更新时间:2023-11-04 05:34:40 24 4
gpt4 key购买 nike

我正在使用 bash 制作一个脚本,它从 iwconfig 中获取文本并将它们存储在变量中。这是我到目前为止所拥有的:

 DEVICE_ESSID=iwconfig wlan0 | grep -e "ESSID:" | awk '{print $2}'
DEVICE_IEEE=iwconfig wlan0 | grep -e "ESSID" | awk '{$3}'
DEVICE_SIGNAL= ``
DEVICE_FREQ=``
DEVICE_MAC=``
timestamp=$(date +%s%N)

我需要捕获:

      Mode:Managed  Frequency:2.427 GHz  Access Point: A4:2B:B0:EB:8D:E2
Bit Rate=72.2 Mb/s Tx-Power=31 dBm

谢谢!

最佳答案

要在变量中捕获命令的输出,您可以使用

DEVICE_ESSID=$(iwconfig wlan0 | grep -e "ESSID:" | awk '{print $2}')

请注意捕获命令输出的 $(...) 语法。

现在让我们假设您有如下所示的 iwconfig wlan0 输出:

wlan0     IEEE 802.11  ESSID:"my-ssid"  
Mode:Managed Frequency:2.437 GHz Access Point: 25:D3:57:A8:F4:35
Bit Rate=72.2 Mb/s Tx-Power=16 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=55/70 Signal level=-55 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:21 Invalid misc:12203 Missed beacon:0

解析可能会有点难看,但有很多方法可以做到这一点。如果您知道自己在做什么(我不知道),awk 会很有帮助且功能强大。我也不确定 iwconfig 的输出有多稳定以及应该如何推荐这种方法。

DEVICE_ESSID=$(iwconfig wlan0 | awk '/ESSID:/ { print $4 }' | sed 's/ESSID:"\(.*\)"/\1/')
DEVICE_IEEE=$(iwconfig wlan0 | awk '/ESSID:/ { print $3 }')
DEVICE_SIGNAL=$(iwconfig wlan0 | awk '/Signal level/ { print $4 }' | awk -F= '{print $2}')
DEVICE_FREQ=$(iwconfig wlan0 | awk '/Frequency/ { print $2 }' | awk -F: '{print $2}')
DEVICE_MAC=$(iwconfig wlan0 | awk '/Access Point/ { print $6 }')

关于linux - 使用 BASH 脚本抓取并封装文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50454669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com