概述
希望删除IP地址前三段相同的多余重复行。测试文本如下:
# cat 1.txt 2.1.10.1 2.1.10.2 2.11.0.1 2.11.0.2
如果数组下标不加引号,在这个特殊的情况下会被强制转换为数字,最终导致统计失败:
# awk 'BEGIN{FS=OFS="."}{if(!a[$1.$2.$3]++)print}' 1.txt 2.1.10.1 # awk -F '.' '{a[$1.$2.$3]++;}END{for(i in a)print i" "a[i]}' 1.txt 2110 4
数组下标加上引号之后,一切恢复正常:
# awk 'BEGIN{FS=OFS="."}{if(!a[$1"."$2"."$3]++)print}' 1.txt 2.1.10.1 2.11.0.1 # awk -F '.' '{a[$1"."$2"."$3]++;}END{for(i in a)print i" "a[i]}' 1.txt 2.11.0 2 2.1.10 2
扩展阅读:
http://www.gnu.org/software/gawk/manual/html_node/Variable-Typing.html
最后
以上就是整齐长颈鹿为你收集整理的linux awk删除文本重复行需要注意强制类型转换的问题 的全部内容,希望文章能够帮你解决linux awk删除文本重复行需要注意强制类型转换的问题 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复