Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Сортировка доменов. (http://forum.oszone.net/showthread.php?t=347314)

serg515 12-12-2020 19:14 2942758

Сортировка доменов.
 
Есть текстовый файл с доменами.
Нужно отсортировать по уровню домена в разные текстовики, средствами .bat
Можно и .vbs.

Iska 12-12-2020 19:41 2942761

serg515, поясните на конкретном примере, что есть, и что должно получиться.

serg515 23-12-2020 12:27 2943915

Есть:
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 2943932

Цитата:

Цитата serg515
по уровню домена »

Цитата:

Цитата serg515
в другом файле »

тогда не в другом, а двух других - видимо опечатка.
Код:

@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 или
Цитата:

Цитата serg515
Можно и .vbs »

на чистом cmd муторно будет.

greg zakharov 23-12-2020 17:14 2943952

Цитата:

Цитата alpap
на чистом cmd муторно будет

Можно одним sed'ом обойтись (или miniperl'ом - благо один единственный бинарник).

Iska 23-12-2020 22:06 2943986

serg515, теперь попробуйте объяснить формально, по какому принципу было сделано это деление. Мне лично непонятно.

alpap 23-12-2020 23:44 2943995

Iska,
ну то что нужно-то ясно (Структура полного доменного имени), просто там где написано: "в другом файле:" в этом абзаце (содержимом) явно опечатка на скорость, т.к. туда попали домены разных уровней. Если выполнить мой код из п4 будет разделение на три файла как и положено согласно представленных имен доменов.

Iska 23-12-2020 23:50 2943998

Цитата:

Цитата alpap
т.к. туда попали домены разных уровней. »

Ото ж.

Цитата:

Цитата alpap
разделение на три файла как и положено согласно представленных имен доменов. »

Я вижу два: три доменных имени третьего уровня и одно — второго.

alpap 23-12-2020 23:51 2943999

последняя строка - первого

Iska 24-12-2020 00:59 2944007

Цитата:

Цитата alpap
последняя строка - первого »

Код:

https://ozone.net/post-2942761
как — первого?!

serg515 26-12-2020 21:46 2944268

Цитата:

Цитата Iska
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 2944275

Цитата:

Цитата serg515
www - префикс »

www - не "префикс", а ровно такой же домен

Iska 26-12-2020 22:41 2944276

Ото ж.

serg515 27-12-2020 13:40 2944320

Цитата:

Цитата Busla
www - не "префикс", а ровно такой же домен »

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

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

serg515 27-12-2020 14:44 2944327

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

alpap 27-12-2020 15:57 2944339

Цитата:

Цитата serg515
вариант с кол-ом точек отпадает »

и по какому критерию тогда выделить эти два
Цитата:

Цитата serg515

именно во второй уровень?

serg515 27-12-2020 17:14 2944348

Цитата:

Цитата alpap
и по какому критерию тогда выделить эти два
Цитата 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 2944351

Код:

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 2944364

Цитата:

Цитата serg515
так как практически адреса с www префикс ом и без www префикса считаются одним и тем же адресом, »

Никогда не считались, и не считаются.

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

serg515 27-12-2020 20:49 2944369

в данном случае углубленная теория не требуется.
т.е.с www или без www считать как один домен.

Iska 27-12-2020 22:24 2944376

serg515, но знать её надо. Дабы изъясняться внятным образом, чтобы тебя понимали.

serg515 28-12-2020 13:12 2944434

Цитата:

Цитата Iska
serg515, но знать её надо. Дабы изъясняться внятным образом, чтобы тебя понимали. »


Цитата:

Цитата serg515
т.е.с www или без www считать как один домен. »

куда уже понятнее.
не в этом дело в данном случае.

Цитата:

Цитата Fors1k
Код:
param(
$pathUrl = "D:\files\urls.txt",
$pathOut = (Split-Path $pathUrl)
)cls
[uri[]](gc $pathUrl)|%{$_.AbsoluteUri|out-file "$pathOut\$(($_.host-Split'(?<!^www)\.').count).txt" »

код работает. есть "шероховатости", но в целом..
т.е. кто знает, тот поймёт. :good:


Время: 15:38.

Время: 15:38.
© OSzone.net 2001-