Linux и Windows: помощь админам и пользователям

Администрируем и настраиваем Windows, Linux.



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

Рубрика: Shell
Метки: |
Среда, 17 сентября 2008 г.
Просмотров: 3362
Подписаться на комментарии по RSS

Вопрос. Мне требуется отсортировать список 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

Постовой

Качественное наружное утепление стен

]]>twitter.com Google Buzz google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru]]>

Комментариев: 2

  1. 2009-11-18 в 01:29:24 | Санчез (анонимно)

    для подобной сортировки достаточно более короткой команды

    $ sort -n /path/to/file

    хотя может уже время повлияло...

  2. 2010-04-10 в 00:37:14 | Аноним (анонимно)

    Спасибо очень помогло

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



(обязательно)