如何使用AWK筛选末尾三个数字均≥70的整行数据
AWK需求实现方案
正确写法
直接通过内置变量定位行末三个数字做判断,无需自定义字段分隔符,可完美兼容带重音等特殊字符的前置内容:
awk '$(NF-2)>=70 && $(NF-1)>=70 && $NF>=70' 你的文本文件名
注:AWK中条件为真时默认执行打印整行的逻辑,所以可以省略显式的
print $0写法,效果完全一致。
写法说明
- 内置变量
NF表示当前行的总字段数,$NF取最后一个字段(即行末第三个数字)、$(NF-1)取倒数第二个字段、$(NF-2)取倒数第三个字段,直接对三个字段做阈值判断即可 - 不需要通过自定义字段分隔符提取数字,规避了正则无法覆盖所有特殊非数字字符的问题
- 不管前置的字符串有多少个字段、包含什么特殊字符,只要保证每行末尾固定为三个数字,该逻辑都可以正常生效
内容的提问来源于stack exchange,提问作者Takuya
相关产品推荐
相关产品推荐

