首页 > 解决方案 > 使用 SSH,在文件中搜索字符串并在最后一次出现时返回它旁边的值

问题描述

我正在尝试找到一种方法来提取监控数据文件的值并进一步使用它。使用 SSH 连接(带密码)我想访问一个位于远程的文件。在这个文件中,我想搜索一个特定的传感器名称。由于该文件包含来自许多传感器和不同时间步长的数据,因此我想选择最后一个(最新)字符串,该字符串旁边是传感器值,我想将其复制并写入本地数据文件和在编程中进一步使用它。我可以将整个文件从服务器复制到本地,但整个文件很大,而且文件每小时都在变化。

时间传感器名称传感器值

25-05-2018;15:24 t_amb 24.8

25-05-2018;15:24 t_room 21.2

25-05-2018;15:24 G_global 120

25-05-2018;15:25 t_amb 25

25-05-2018;15:25 t_room 21

25-05-2018;15:25 G_global 227.8

例如,在上述文件中,它位于通过 SSH 端口连接的另一台计算机中,我只想搜索字符串 't_room' 并在远程文件中找到它的最后一次出现并将值写入旁边它将“21”放入位于本地目录中的文件中。

编辑:或多或少我想做类似的事情,但我想在 Python 中做而不是 bash 脚本:

sshpass -piHEM_MT17 ssh 192.168.101.53 "keysight" | egrep "SP_t_5_roh" | cut -d" " -f4 | tail -n 1 > /run/user/1000/temperaturtest.txt

标签: pythonsshscp

解决方案


您可以通过管道将数据传输到grep以选择tail包含“t_room”的最后一行,然后使用 打印以空格分隔的第三列awk

例如,如果您的数据保存在 log.txt 中:

cat log.txt | grep t_room | tail -n 1 | awk -F" " '{print $3}'


推荐阅读