.png)
Я только что попытался создать |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