Все задачи

Склейка доменов

02 May 2014

В файле domains.txt хранится список доменных имен:

> head domains.txt
www.ru
www.com
www.yandex.ru
yandex.ru
www.liruoko.ru
liruoko.ru
perltrap.com
google.com

Некоторые домены начинаются с www., некоторые – нет. Программисту понадобилось получить уникализированный список, причем имена с префиксом www и без него надо “склеить” (yandex.ru и www.yandex.ru посчитать один раз, как yandex.ru). Однако просто удалять www. в начале имени нельзя, так как есть домен www.ru и подобные, и программист решил воспользоваться заглядывающими вперед шаблонами.

Получился такой однострочник:

perl -lne 's!^www\.(?![^\.]+$)!!;print;' domains.txt |sort |uniq

Что с ним не так?