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

如何使用AWK删除纬度为整数或0.5小数的行?

AWK实现移除特定纬度行的需求

问题描述

我有一组经度固定、纬度可变的坐标数据,原始数据如下:

75.5    36.5    37.4290504456
75.5    36.4    52.4753456116
75.5    36.3    66.4775466919
75.5    36.2    84.0023193359
75.5    36.1    111.997085571
75.5    36  172.343933105
75.5    35.9    111.806427002
75.5    35.8    83.5655899048
75.5    35.7    65.6402206421
75.5    35.6    50.8337936401
75.5    35.5    33.7828178406

需求是移除所有纬度为整数或小数部分为0.5的行,期望得到的结果如下:

75.5    36.4    52.4753456116
75.5    36.3    66.4775466919
75.5    36.2    84.0023193359
75.5    36.1    111.997085571
75.5    35.9    111.806427002
75.5    35.8    83.5655899048
75.5    35.7    65.6402206421
75.5    35.6    50.8337936401

AWK实现方案

直接使用以下AWK命令即可完成需求:

awk '$2*2 != int($2*2)' input.txt

逻辑解释

  • 纬度对应数据的第二列$2,我们通过乘以2的方式简化判断:
    • 如果纬度是整数(如36),乘2后结果是整数;如果纬度小数部分是0.5(如36.5),乘2后也是整数。
    • int($2*2)会提取乘2后的整数部分,当$2*2不等于这个整数部分时,说明原始纬度既不是整数,小数部分也不是0.5,此时AWK默认输出整行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 16:21:52