【发布时间】:2018-09-22 13:40:28
【问题描述】:
我正在尝试编写一个脚本来检测我在家中的存在。到目前为止,我已经编写了一个脚本,它将数据从 hcitool lescan 输出到以下格式的 csv 文件中:
TIMESTAMP MAC_ADDRESS_1 MAC_ADDRESS_2 AD_INFINITUM
2018-09-22.11:48:34 FF:FF:FF:FF:FF:FF FF:FF:FF:FF:FF:FF FF:FF:FF:FF:FF:FF
我正在尝试弄清楚如何编写脚本以将数据转换为可图形化的格式 - gnuplot 是用于此目的的程序吗?我想这需要一个bash?导入保存所有时间戳的 csv 文件的脚本,然后为每个唯一的 MAC 地址在数组中添加一个新列,然后根据是否每行检测到 Mac 地址,用 1 或 0 填充条目。是否有任何内置命令可以执行/帮助解决此问题,或者我必须自己编写脚本?
我用来生成 .csv 的代码在这里。抱歉,它可能不是最漂亮的,因为我刚刚开始使用 bash 脚本。
cd /home/pi/projects/bluetooth_control;
while true
do
echo 'reset hci0';
sudo hciconfig hci0 down;
sudo hciconfig hci0 up;
echo 'timestamp';
echo `date +%Y-%m-%d.%H:%M:%S` &> test1.csv;
echo 'running scan';
(sudo timeout 20 stdbuf -oL hcitool lescan | grep -Eo '(([A-Z]|[0-9]){2}:){5}([A-Z]|[0-9]){2}') &> test.csv;
echo 'removing duplicates to test.csv';
(sort test.csv | uniq) >> test1.csv;
(paste -s test1.csv) >> data.csv;
echo 'sleep for 60s';
sleep 60;
done
【问题讨论】:
标签: bash csv bluetooth monitor