Мне дают файл (обычно содержимое grep), который содержит один URL на строку.
Я ищу способ сортировки URL, например:
- Сортировка по имени хоста
- Сортировка по имени субдомена
- Сортировать по пути
Вот пример файла, содержащего то, что нужно отсортировать:
www.example.com
www.my-website.com
www.example.org
my-website.com
www.my-website.org
И как бы это было отсортировано:
www.example.com
www.example.org
my-website.com
www.my-website.com
www.my-website.org
На данный момент я использую решение, которое является довольно неоптимальным, потому что сначала я сортирую по домену верхнего уровня с помощью
... | rev | sort -u | rev
# notice the -u flag in the sort, it is optional but appreciated
Следует сказать, что этот программный продукт должен использоваться (предположительно) в двух случаях:
При анализе содержимого conf-файлов Httpd (особенно grep-запросов ServerName-s и ServerAlias-es и передачи их в операции DNS-запросов)
При анализе результатов некоторого веб-сканирования (в основном рекурсивного wget
, подаваемого на сканер Flex для извлечения URL-адресов)
В обоих случаях большинство URL-адресов связаны друг с другом.
Как я могу "умно" отсортировать эти URL в bash?