awk - 使用 awk 修剪 GPS 信息
问题描述
在一个小 bash 脚本中,我只是尝试修剪 GPS 输入数据,以便在单独的变量中具有经度和纬度值:
echo $geo_data
GPS_latitude=$( echo $geo_data | awk -F"+|-" '{print substr($0,index($0,$2-1),1) $2}' )
GPS_longitude=$( echo $geo_data | awk -F"+|-" '{print substr($0,index($0,$3-1),1) $3}' )
echo $GPS_latitude
echo $GPS_longitude
但我得到的似乎混淆了每个组件前面的 +/- 符号:
-04.7367+055.5230
-04.7367
-055.5230
我认为 index() 参数可以完全避免这种情况,但显然我做错了什么。知道如何解决这个问题吗?
解决方案
使用 bash 和正则表达式:
geo_data="-04.7367+055.5230"
[[ "$geo_data" =~ ^([+-][0-9.]+)([+-][0-9.]+)$ ]]
echo "${BASH_REMATCH[1]} ${BASH_REMATCH[2]}"
输出:
-04.7367 +055.5230
推荐阅读
- java - Retrofit 2 在模拟器上工作,但不在实体手机上
- python - 根据另一列的条件从 Pandas 数据框中删除重复项
- c# - 我的 c# TCP Sockets 程序被 Windows Defender 隔离
- python - 为具有相似模式的列名创建 matplotlib 子图
- java - 未找到 spring-boot-starter-validation
- python - Python - 到期收益率(金融 - 债券)
- gradle - 如何将 Realm 添加到 Kotlin 多平台库项目的 Android 目标?
- ansible - Ansible 无法运行任何命令或 shell
- brute-force - 使用 Hydra 暴力破解 http 摘要
- javascript - 如何通过dms(discord.js v12)检查用户是否在服务器中具有角色