如何用grep筛选gpspipe输出的GPPA行并写入文件?
提取gpspipe输出中的GPPA行并保存到文件
问题说明
我尝试用gpspipe工具从连接的USB GPS接收器提取经纬度(及速度)数据,只想保留包含这些信息的GPPA行并写入txt文件,但试了几个命令都没成功:
- 执行
gpspipe -r -t -o test.txt | grep GPPA时,所有NMEA数据直接写入了test.txt,grep完全没起作用 - 执行
gpspipe -r -t | grep GPPA | gpspipe -o test.txt直接运行失败 - 执行
gpspipe -r -t | grep GPPA | > test.txt生成的是空文件
解决方法
正确命令1:直接过滤后重定向写入文件
gpspipe -r -t | grep GPPA > test.txt
错误原因解析:
- 第一个命令里的
-o test.txt参数会让gpspipe直接把所有输出写入文件,不会将数据传递给后续的grep命令,导致过滤失效。 - 第三个命令多了一个多余的管道符
|,重定向文件只需要用> test.txt直接接收grep的输出即可,不需要额外管道。
正确命令2:同时在终端查看输出并写入文件
如果想一边在终端查看过滤后的GPPA行,一边保存到文件,可以使用tee命令:
gpspipe -r -t | grep GPPA | tee test.txt
内容的提问来源于stack exchange,提问作者GKelly
相关产品推荐
相关产品推荐

