主页 > 知识库 > linux awk删除文本重复行需要注意强制类型转换的问题

linux awk删除文本重复行需要注意强制类型转换的问题

热门标签:百度地图标注开锁电话 山东企业电销机器人价格 公司400电话办理价格 依兰县地图标注app pageadm实现地图标注 百度中国地图标注中心 潮州地图标注 安阳百应电销机器人加盟 珲春市地图标注app

希望删除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,删除,文本,重复,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《linux awk删除文本重复行需要注意强制类型转换的问题》相关的同类信息!
  • 本页收集关于linux awk删除文本重复行需要注意强制类型转换的问题的相关信息资讯供网民参考!
  • 推荐文章