希望删除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
扩展阅读:
如对本文有疑问, 点击进行留言回复!!
linux下文本编辑器vim的使用方法(复制、粘贴、替换、行号、撤销、多文件操作)
网友评论