批量格式化hosts

做为程序员一员,做开发久了,是不是hosts里面的IP是这样子的。

host

直接打开HOST,要找一下哪些IP下有绑定哪些域名,还要找来找去的。在linux下,倒是可以直接

cat /etc/hosts | grep  你想要找的IP

但是也不很直观, 做为一个比较强迫证我的我,喜欢把所有的IP整理在一起。 一打开,就知道哪个IP下有哪些域名。 简单明了。

格式化后的代码

不多说了,直接代码了,上面有注释:

#!/bin/bash

#要格式化的文件   hosts
file_name=/etc/hosts
#清除注释跟空格
sudo sed -ri '/^#/d;/^$/d;' "$file_name"

#取出host下的所有IP
sudo cat "$file_name" | awk '{print $1}' | sort | uniq > /tmp/ip 

#循环进行调整
for i in `cat /tmp/ip`
do
   sudo sed -ri '/'${i}'/{H;d;};$G' "$file_name"
done

#格式化多个空格跟tab,替换成1个空格
sudo sed -ri 's/[ \t]+/ /g' $file_name

rm /tmp/ip

谢谢大家的查阅。

你可能感兴趣的:(批量格式化hosts)