【发布时间】:2018-11-13 23:38:23
【问题描述】:
我正在使用我的 Airport 实用程序来获取我周围的所有可用 WiFi 网络,并且我想使用 gnuplot 将它们显示为集群条形图。我不知道如何将数据转换为 gnuplot 可以使用的形式。
我的neighbours.dat 看起来像这样:
CHANNEL RSSI SSID
1 -54 DESIGN-DEV
1 -54 DESIGN-EMPLOYEE-DA
1 -54 DESIGN-GUEST
1 -56 DESIGN-DEV
1 -56 DESIGN-EMPLOYEE-DA
1 -56 DESIGN-GUEST
1 -56 cwlanoffice
1 -56 llc-net
1 -66 DESIGN-DEV
1 -66 DESIGN-EMPLOYEE-DA
1 -66 DESIGN-GUEST
6 -56 WLAN-A23120
6 -60 WLAN-73CF94
6 -71 DESIGN-EMPLOYEE-DA
6 -71 DESIGN-GUEST
6 -72 DESIGN-DEV
6 -74 ecp-eco2016
6 -75 cwlanoffice
6 -75 llc-net
6 -76 CWLANGuest
6 -84 CWLANGuest
6 -84 TIMTIM
6 -85 llc-net
11 -39 WLAN-BKH64S
11 -67 cwlanoffice
11 -67 llc-net
11 -69 CWLANGuest
36 -57 WLAN-73CF94
36 -89 CWLANGuest
36 -89 cwlanoffice
36 -90 llc-net
44 -65 CWLANGuest
44 -66 cwlanoffice
44 -66 llc-net
44 -80 ecp-eco2016
52 -40 WLAN-BKH64S
52 -56 DESIGN-DEV
52 -56 DESIGN-GUEST
52 -57 DESIGN-EMPLOYEE-DA
100 -73 DESIGN-DEV
100 -73 DESIGN-GUEST
100 -74 DESIGN-EMPLOYEE-DA
108 -47 DESIGN-DEV
108 -47 DESIGN-EMPLOYEE-DA
108 -47 DESIGN-GUEST
108 -61 DESIGN-DEV
108 -61 DESIGN-EMPLOYEE-DA
108 -62 DESIGN-GUEST
132 -66 CWLANGuest
132 -66 cwlanoffice
132 -66 llc-net
对于bar chart,我需要将其转换为这种格式——SSID 作为我的列,CHANNEL 作为我的行:
SSID1 SSID2 SSID3 SSID4 SSID5
Channel1 -56 -20 -19 -47
Channel2 -38 -21 -28
你能帮我实现吗?我最近的尝试是使用唯一的 SSID 并尝试使用它们创建一个表。
sort -k3 -u neighbours.dat | awk '{print $3}' > neighbours-ssids.dat
c=$(wc -l < neighbours-ssids.dat)
echo $c
for (( i = 0; i < $c; i++ )); do
awk 'NR=='$i neighbours-ssids.dat
done
【问题讨论】:
-
我不明白您想要实现的表格格式。例如,当一个 SSID 对同一个频道有多个条目(例如,DESIGN-DEV 对频道 1 有三个条目)时,你会怎么做?
-
@user8153 没错。这是我现在才明白的。出于我的目的,我使用
tail -n 1仅使用最高价值。表格的格式应该类似于this example。