linux awk删除文本重复行需要注意强制类型转换的问题
导读:收集整理的这篇文章主要介绍了linux awk删除文本重复行需要注意强制类型转换的问题 ,觉得挺不错的,现在分享给大家,也给大家做个参考。 希望删除IP地址前三段相同的多余重复行。测试文本如下:# cat 1.txt2.1.10....
收集整理的这篇文章主要介绍了linux awk删除文本重复行需要注意强制类型转换的问题 ,觉得挺不错的,现在分享给大家,也给大家做个参考。 希望删除IP地址前三段相同的多余重复行。测试文本如下:
# cat 1.txt2.1.10.12.1.10.22.11.0.12.11.0.2
如果数组下标不加引号,在这个特殊的情况下会被强制转换为数字,最终导致统计失败:
# awk 'BEgin{ FS=OFS="."} { if(!a[$1.$2.$3]++)PRint} ' 1.txt2.1.10.1# awk -F '.' '{ a[$1.$2.$3]++; } END{ for(i in a)print i" "a[i]} ' 1.txt2110 4
数组下标加上引号之后,一切恢复正常:
# awk 'BEGIN{ FS=OFS="."} { if(!a[$1"."$2"."$3]++)print} ' 1.txt2.1.10.12.11.0.1# awk -F '.' '{ a[$1"."$2"."$3]++; } END{ for(i in a)print i" "a[i]} ' 1.txt2.11.0 22.1.10 2
扩展阅读:
http://www.gnu.org/software/gawk/manual/html_node/Variable-Typing.html
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: linux awk删除文本重复行需要注意强制类型转换的问题
本文地址: https://pptw.com/jishu/645277.html