linux awk删除文本重复行需要注意强制类型转换的问题
时间:2016-11-13 08:25:16 魔新豆网
希望删除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
本文标签:
读过此篇文章的网友还读过:
- 3dmax放样方向不对的转换方法介绍
- Flash cs6怎么制作太阳从左到右重复移动的动画?
- CAD椭圆形怎么转换为修订云线?
- Cad与SolidWorks怎么互相转换图纸?
- ipad air刷机强制升级8.2时出现错误3004该怎办?
- AirPods怎么更新固件 AirPods支持强制升级新固件吗
- 注册表解锁之REG格式与BAT格式的转换
- Linux中的编码转换程序convmv的安装和使用教程
- 重复内容如何影响seo搜索引擎优化?
- 企业SEO问答:电商网站内容和其他网站出现重复等一系列问题怎么解决?
- 文章为什么被重复收录? 文章被百度重复收录的原因及解决方法
- Ubuntu系统上实现转换图像、音频和视频格式的方法