python - 使用 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
解决方案
您可以通过管道将数据传输到grep
以选择tail
包含“t_room”的最后一行,然后使用 打印以空格分隔的第三列awk
。
例如,如果您的数据保存在 log.txt 中:
cat log.txt | grep t_room | tail -n 1 | awk -F" " '{print $3}'
推荐阅读
- azure - 在 Azure 中整合托管标识与身份验证/授权标识
- javascript - 如何使用 vue 从对象数组中提取数据来提交预填充表单
- python - 我的编码并没有让我再次播放,而是循环播放
- swift - UserNotification 从未来的日期开始每分钟重复一次
- python - 为什么我的代码每次运行时都会产生不同的结果?(Python)
- javascript - HTML 中的动态超链接
- node.js - 如何从本地节点 js 转移到我的 vps 上?
- date - 自定义列和计算列
- sql - Hasura SQL 查询 id:整数不工作错误
- haskell - 无法理解 Haskell 跟踪