Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 从shell输出中提取特定字符_Bash_Shell_Awk_Sed - Fatal编程技术网

Bash 从shell输出中提取特定字符

Bash 从shell输出中提取特定字符,bash,shell,awk,sed,Bash,Shell,Awk,Sed,当我执行: root@imx6slzbha:~# iw wlan0 scan 我收到以下作为输出,它给我多个附近的SSID数据 如何根据特定SSID名称获取信号强度 目前,我正在使用以下命令基于BSS获取: iw wlan0 scan | sed -n '/bc:d1:1f:16:55:c7/,/WMM/p' | grep signal | sed 's/.*-//' | awk '{print $1}' | cut -d . -f 1 但我可能不知道BSS的每一次,所以需要一个通用的答案,

当我执行:

root@imx6slzbha:~# iw wlan0 scan
我收到以下作为输出,它给我多个附近的SSID数据

如何根据特定SSID名称获取信号强度

目前,我正在使用以下命令基于BSS获取:

iw wlan0 scan | sed -n '/bc:d1:1f:16:55:c7/,/WMM/p' | grep signal | sed 's/.*-//' | awk '{print $1}' | cut -d . -f 1
但我可能不知道BSS的每一次,所以需要一个通用的答案,这个要求

BSC8:00:84:85:41:b1(在wlan0上)
TSF:4138861160471 usec(47d,21:41:01)
频率:2462
信标间隔:102
能力:ESS短前导短时隙(0x1421)
信号:-80.00 dBm
最后一次见到:90毫秒前
SSID:Swarovski_嘉宾
支持费率:1.0*2.0*5.5*6.0 9.0 11.0*12.0 18.0
DS参数设置:通道11
国家/地区:环境:室内/室外
信道[1-11]@30 dBm
企业资源规划:
HT能力:
能力:0x19ac
HT20
SM节能功能已禁用
RX HT20 SGI
TX机顶盒
RX-STBC 1-stream
最大AMSDU长度:7935字节
DSSS/CCK HT40
最大RX AMPDU长度65535字节(指数:0x003)
最小接收电流时间间隔:8 usec(0x06)
支持的HT RX MCS速率指数:0-23
HT TX MCS速率索引未定义
扩展支持率:24.0 36.0 48.0 54.0
高温作业:
*主频道:11
*辅助通道偏移:无辅助通道
*STA信道宽度:20 MHz
*RIFS:0
*HT保护:非成员
*不在场:1
*OBSS不存在:0
*双信标:0
*双电流互感器保护:0
*STBC信标:0
*L-SIG TXOP保护:0
*PCO活动:0
*PCO阶段:0
扩展能力:4、6
WMM:*参数版本1
*u-APSD
*BE:CW 15-1023,AIFSN 3
*BK:CW 15-1023,AIFSN 7
*VI:CW 7-15,AIFSN 2,TXOP 3008 usec
*旁白:acm CW 3-7,AIFSN 2,TXOP 1504 usec
BSS a0:ab:1b:cf:28:ae(在wlan0上)
TSF:3196211626 usec(0d,00:53:16)
频率:2462
信标间隔:100
功能:ESS隐私短前导短时隙(0x0431)
信号:-74.00 dBm
最后一次见到:80毫秒前
探针响应框中的信息元素:
SSID:FOTA_Rashmi_2.4G
支持费率:1.0*2.0*5.5*11.0*9.0 18.0 36.0 54.0
DS参数设置:通道11
扩展支持费率:6.0 12.0 24.0 48.0
国家:欧盟环境:室内/室外
通道[1-13]@20dBm
TIM:DTIM计数0 DTIM周期1位图控件0x0位图[0]0x2
WPS:*版本:1.0
*受Wi-Fi保护的设置状态:2(已配置)
*UUID:28802880-2880-1880-a880-a0ab1bcf28ae
*射频频段:0x1
*未知TLV(0x1049,6字节):00 37 2a 00 01 20
企业资源规划:
HT能力:
功能:0x11ee
HT20/HT40
SM节能功能已禁用
RX HT20 SGI
RX HT40 SGI
TX机顶盒
RX-STBC 1-stream
最大AMSDU长度:3839字节
DSSS/CCK HT40
最大RX AMPDU长度65535字节(指数:0x003)
最小接收电流时间间隔:4 usec(0x05)
支持的HT RX MCS速率指数:0-15,32
HT TX MCS速率索引未定义
高温作业:
*主频道:11
*辅助通道偏移:无辅助通道
*STA信道宽度:20 MHz
*RIFS:0
*HT保护:非成员
*不在场:0
*OBSS不存在:0
*双信标:0
*双电流互感器保护:0
*STBC信标:0
*L-SIG TXOP保护:0
*PCO活动:0
*PCO阶段:0
扩展功能:支持HT信息交换
WPA:*版本:1
*组密码:TKIP
*成对密码:TKIP CCMP
*认证套件:PSK
RSN:*版本:1
*组密码:TKIP
*成对密码:TKIP CCMP
*认证套件:PSK
*能力:(0x0000)
WMM:*参数版本1
*BE:CW 15-1023,AIFSN 3
*BK:CW 15-1023,AIFSN 7
*VI:CW 7-15,AIFSN 2,TXOP 3008 usec
*旁白:CW 3-7,AIFSN 2,TXOP 1504 usec

要使用给定的SSID,例如“施华洛世奇宾客”,您可以:

  • 查找信号强度
    /signal/
  • 将其存储在历史
    h中
  • 查找特定的SSID名称
    /SSID:Swarovski\u Guest/
  • 检索信号强度
    x
  • 修剪除值编号
    s/^.*:-\(.*\)dBm$/\1/以外的任何内容
  • 打印它
    p
样本输入的输出:

 80.00

你所说的一般要求是什么意思?那你想怎么处理呢?从用户处获取输入并打印值?请解释您当前的代码。请描述你想要实现的目标。你在找固定的SSID吗?哪一个?您的命令行应该为示例输入提供任何输出?您的“问题”标题是
从shell输出中提取特定字符
,因此您的问题至少要告诉我们该特定字符是什么
sed -n '/signal/h;/SSID: Swarovski_Guest/{x;s/^.*: -\(.*\) dBm$/\1/;p}'
 80.00