Linux系统下如何从终端输出内容中提取RX Packet的Total数值
实现方法
你可以通过管道结合Linux文本处理工具直接提取目标数值,以下是几种稳定的实现方案:
方案1:awk(最推荐,适配性最强)
直接对接你的脚本执行结果即可,命令如下:
# 替换./your_script.sh为你实际执行的脚本路径 ./your_script.sh | awk '/RX Packet:/{find=1; next} find && /Total:/{print $2; exit}'
说明:通过标记位find匹配到RX Packet:行后置为生效状态,后续匹配到第一个Total:开头的行时直接输出第二个字段(就是对应数值),匹配到后立刻退出,避免误匹配TX区域的Total字段。
方案2:grep
./your_script.sh | grep -A 4 "RX Packet:" | grep -oP "Total:\s*\K\d+"
说明:-A 4表示提取RX Packet:行之后的4行内容,再通过PCRE模式的\K语法过滤掉Total:和前面的空格,仅输出后面的数字。
方案3:sed
./your_script.sh | sed -n '/RX Packet:/,/CRC Error:/{/Total:/s/.*Total: *//p}'
说明:指定匹配RX Packet:到CRC Error:之间的行区间,在区间内匹配Total:所在行,把行内Total:及之前的内容全部删除后输出剩余的数值。
内容的提问来源于stack exchange,提问作者Ferrari Service
相关产品推荐
相关产品推荐

