我有一个可打印一些数据的硬件GPS:
sudo cat /dev/ttyGPS_Device | grep -a GPRMC
它每半秒左右打印一次,看起来像这样:
$ GPRMC,171450.000,A,4239.245592,N,07349.887355,W,0.000,116.6,150420 ,,, A * 74$ GPRMC,171503.000,A,4239.245592,N,07349.887355,W,0.000,116.6,150420 ,,, A * 73$ GPRMC,171504.000,A,4239.245592,N,07349.887355,W,0.000,116.6,150420 ,,, A * 74
我可以通过以下操作仅过滤纬度和经度:
sudo cat /dev/ttyACM2 | stdbuf -oL grep -a GPRMC | stdbuf -oL cut -d',' -f 4-7 | tr ',' '\t'
而且输出看起来更好:
4239.245592 N 07349.887355 W4239.245592 N 07349.887355 W4239.245592 N 07349.887355 W
我希望能够对数据进行一些数学运算和格式化。具体来说,前导零必须变为“-”,并且两个值都必须乘以100。所需的输出:
42.39245592 N -73.49887355 W42.39245592 N -73.49887355 W42.39245592 N -73.49887355 W
如果使用非bash
解决方案,我会好的,但是我更喜欢一个很好的衬板。我用来获取GPS数据的硬件是Ericsson H5321 gw Mobile Broadband Module
使用GNU awk:
| awk '{printf("%.8f %s -%.8f %s\n",$1/100,$2,$3/100,$4)}'
输出:
42.39245592 N -73.49887355 W42.39245592 N -73.49887355 W42.39245592 N -73.49887355 W