Войти

Показать полную графическую версию : Сортировка доменов.


Страниц : [1] 2

serg515
12-12-2020, 19:14
Есть текстовый файл с доменами.
Нужно отсортировать по уровню домена в разные текстовики, средствами .bat
Можно и .vbs.

Iska
12-12-2020, 19:41
serg515, поясните на конкретном примере, что есть, и что должно получиться.

serg515
23-12-2020, 12:27
Есть:
http://forum.oszone.net/post-2942761.html#post2942761
http://forum.osone.net/post-2942761.html
http://www.oszone.net/post
https://ozone.net/post-2942761

Должно быть:
в одном файле
http://forum.oszone.net/post-2942761.html#post2942761
http://forum.osone.net/post-2942761.html

в другом файле:

http://www.oszone.net/post
https://ozone.net/post-2942761

alpap
23-12-2020, 14:04
по уровню домена »
в другом файле »
тогда не в другом, а двух других - видимо опечатка.

@echo off
for /f "delims=" %%s in (file.txt) do echo "%%s"|grep -o "\."|wc -w|set /p n=^& cmd /v/c ">>file!n!.txt echo %%s"
pause

нужны grep и wc или
Можно и .vbs »
на чистом cmd муторно будет.

greg zakharov
23-12-2020, 17:14
на чистом cmd муторно будет
Можно одним sed'ом обойтись (или miniperl'ом - благо один единственный бинарник).

Iska
23-12-2020, 22:06
serg515, теперь попробуйте объяснить формально, по какому принципу было сделано это деление. Мне лично непонятно.

alpap
23-12-2020, 23:44
Iska,
ну то что нужно-то ясно (Структура полного доменного имени (https://ru.wikipedia.org/wiki/%D0%94%D0%BE%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5_%D0%B8%D0%BC%D1%8F)), просто там где написано: "в другом файле:" в этом абзаце (содержимом) явно опечатка на скорость, т.к. туда попали домены разных уровней. Если выполнить мой код из п4 будет разделение на три файла как и положено согласно представленных имен доменов.

Iska
23-12-2020, 23:50
т.к. туда попали домены разных уровней. »
Ото ж.

разделение на три файла как и положено согласно представленных имен доменов. »
Я вижу два: три доменных имени третьего уровня и одно — второго.

alpap
23-12-2020, 23:51
последняя строка - первого

Iska
24-12-2020, 00:59
последняя строка - первого »
https://ozone.net/post-2942761
как — первого?!

serg515
26-12-2020, 21:46
serg515, теперь попробуйте объяснить формально, по какому принципу было сделано это деление. Мне лично непонятно. »

Третьего уровня:
http://forum.oszone.net/post-2942761.html#post2942761
http://forum.osone.net/post-2942761.html

Второго уровня:
http://www.oszone.net/post
https://ozone.net/post-2942761

sample.gtw-02.office4.example.com., где:

sample — пятый уровень;
gtw-02 — четвертый уровень;
office4 — третий уровень;
example — второй уровень;
com — первый (верхний) уровень;
.(точка) — нулевой (корневой) уровень.

http(s) - протокол передачи данных
www - префикс

Busla
26-12-2020, 22:28
www - префикс »
www - не "префикс", а ровно такой же домен

Iska
26-12-2020, 22:41
Ото ж.

serg515
27-12-2020, 13:40
www - не "префикс", а ровно такой же домен »

так как практически адреса с www префикс ом и без www префикса считаются одним и тем же адресом, то в данном случае необходимо учитывать именно эту особенность.

ЗЫ.вариант с кол-ом точек отпадает.

serg515
27-12-2020, 14:44
если сильно смущает "www" и только это мешает написанию батника ,то в общем можно и без (не учитывая) "www",но предпочтительнее с ним.

alpap
27-12-2020, 15:57
вариант с кол-ом точек отпадает »
и по какому критерию тогда выделить эти два
http://www.oszone.net/post
https://ozone.net/post-2942761 »
именно во второй уровень?

serg515
27-12-2020, 17:14
и по какому критерию тогда выделить эти два
Цитата serg515:
http://www.oszone.net/post
https://ozone.net/post-2942761 »
именно во второй уровень? »

в данном случае во второй.
если бы было:
http://www.soft.oszone.net/post
https://soft.ozone.net/post-2942761
то в третий и т.д.

Fors1k
27-12-2020, 17:51
param(
$pathUrl = "D:\files\urls.txt",
$pathOut = (Split-Path $pathUrl)
)cls

[uri[]](gc $pathUrl)|%{$_.AbsoluteUri|out-file "$pathOut\$(($_.host-Split'(?<!^www)\.').count).txt" -a}

Iska
27-12-2020, 20:00
так как практически адреса с www префикс ом и без www префикса считаются одним и тем же адресом, »
Никогда не считались, и не считаются.

А опосля, окромя www, внезапно вспомнится ftp, потом что-нибудь ещё, и т.д.

serg515
27-12-2020, 20:49
в данном случае углубленная теория не требуется.
т.е.с www или без www считать как один домен.




© OSzone.net 2001-2012