zoukankan      html  css  js  c++  java
  • AWK处理重复Hosts

    最近在做不同环境相关的项目,因为一直在调试中,总会遇到不同环境多方导致的hosts重复或者指向的ip不一致等问题,比如如下的hosts,绑定host重复到还好,不会影响到域名执行,但是就像下面的onlinepub.nsg.com一样,有重复而且域名的指向还不一样,一定会出错,所以需要对这种hosts做以下处理。

    127.0.7.3 onlinepub.nsg.com ←这个域名还有重复

    127.0.7.3 onlineplay.nsg.com

    127.0.7.31 onlineplay.nsg.com

    127.0.7.25 slb.nanshuge.com ←这里结尾有空格

    127.0.8.12 rep-sec.nsglatest.com ←这里中间有多个有空格

    127.0.8.12 rep-sec.nsgcdn.com

    127.0.7.3 onlinepub.nsg.com

    需要用到以下脚本进行处理:

    #根据多列去重
    awk -F ' '  '!x[$1 ,$2]++' hosts.txt   # 注意,这里的分隔符为空格(F后面的' '),使用FS的默认值时,awk用空格或制表符来分隔字段,并且删除各字段前多余的空格或制表符
    cat hosts.txt |awk '!a[$1" "$2]++{print}'
    
    #只显示重复的行
    cat hosts.txt |awk 'a[$1 ,$2]++{print}'   #尽量使用这个,避免空格导致计算不准确
    cat hosts.txt |awk 'a[$0]++{print}'
    
    #第二列相同,第一列不同
    awk '!a[$2]++{s[$2]=$0;b[$1$2]++;next} a[$2]++&&!b[$1$2]++{s[$2]=s[$2]!=""?s[$2]"
    "$0:$0;print s[$2];s[$2]=""}' hosts.txt
    
  • 相关阅读:
    别了,DjVu!
    DjVu转PDF
    我的电子书历程
    连续翻页浏览器面临的共同问题
    对超过2TB的硬盘进行分区需要使用parted
    DB2常用命令
    CentOS增加网卡
    mysql相关参数解读
    max_user_connections参数设置试验
    mysql最大连接数试验
  • 原文地址:https://www.cnblogs.com/haojile/p/12489627.html
Copyright © 2011-2022 走看看