Вы здесь

Linux/Unix shell: как отсортировать IP адреса

tags: 

Вопрос. Мне требуется отсортировать список IP-адресов, расположенный в текстовом файле. Каким образом мне сделать эту операцию в Linux или Unix?

Ответ. Вам необходимо использовать команду sort для сортировки. Сортировка основана на одном или нескольких ключах, действующих на каждую входящую строку. По умолчанию, пробел используется как дефолтный разделитель полей.

Команда sort - сортируем IP адреса

Это пример исходного файла:
192.168.1.100
192.168.1.19
192.168.1.102
192.168.2.1
192.168.0.2
Введем следующую команду:

sort -t . -k 3,3n -k 4,4n /path/to/file

Результат:
192.168.0.2
192.168.1.19
192.168.1.100
192.168.1.102
192.168.2.1
Где,

  • -t .: Устанавливает поле . (точка) как разделитель полей
  • -n: Делает программную числовую сортировку
  • -k opts: Сортируте данные / поля, используя только определённые поля. К примеру, опция -k 2 заставляет программу сортировать только второе поле.

Для подробного изучения:

man sort

Оригинал статьи: http://guruadmin.ru/page/linux.