我刚刚尝试|sort -nu
(数字且唯一)列出大约 30 个 IP 地址,并注意到除了剔除重复的行之外,它还将相似的行(即前两个或三个八位字节相同的地址)视为相同的行;并将它们剪掉。
那是怎么回事?
为了说明起见,您可以模拟这种情况,如下所示:
标准输入
for ip in 192.168.1.{1..5};
do
echo "$ip";
done > ip.log
for ip in 10.1.1.{1..5};
do
echo "$ip";
done >> ip.log
cat 'ip.log'
标准输出
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
10.1.1.1
10.1.1.2
10.1.1.3
10.1.1.4
10.1.1.5
标准输入
sort -nu 'ip.log'
标准输出
10.1.1.1
192.168.1.1
答案1
告诉sort
按版本号排序:
$ sort -Vu 'ip.log'
10.1.1.1
10.1.1.2
10.1.1.3
10.1.1.4
10.1.1.5
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
或者,告诉它按所有四个字段按数字排序:
$ sort -nu -t. -k1 -k2 -k3 -k4 'ip.log'
10.1.1.1
10.1.1.2
10.1.1.3
10.1.1.4
10.1.1.5
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5