You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在bash脚本中调用rosbag info提取指定字段并完成数值判断

该需求完全可以在bash脚本中实现,核心思路是通过文本处理工具过滤rosbag info的输出,提取目标字段的数值即可。

字段提取方法

最稳定的实现方式是用awk做行匹配和字段提取,不需要依赖正则扩展,兼容性更好:
提取messages字段数值的命令如下:

rosbag info abag.bag | awk '/^messages:/ {print $2}'

逻辑说明:匹配所有以messages:开头的行,输出该行的第二个字段,就是我们需要的消息数量数值。

完整可运行脚本示例

#!/bin/bash
# 配置bag包路径和预期消息数量
BAG_FILE="abag.bag"
EXPECTED_MSG=952

# 提取实际消息数量
ACTUAL_MSG=$(rosbag info "${BAG_FILE}" | awk '/^messages:/ {print $2}')

# 数值比较判断
if [ "${ACTUAL_MSG}" -eq "${EXPECTED_MSG}" ]; then
    echo "everything ok"
else
    echo "some messages were skipped"
fi

扩展说明

如果需要提取其他字段,只需要修改awk的匹配规则即可:

  • 提取bag包大小:awk '/^size:/ {print $2}'
  • 提取时长总秒数:awk '/^duration:/ {gsub(/[()s]/,"",$3); print $3}'

内容的提问来源于stack exchange,提问作者KansaiRobot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 22:42:02