Показать полную графическую версию : Сортировка доменов.
Есть текстовый файл с доменами.
Нужно отсортировать по уровню домена в разные текстовики, средствами .bat
Можно и .vbs.
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
Должно быть:
в одном файле
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
по уровню домена »
в другом файле »
тогда не в другом, а двух других - видимо опечатка.
@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'ом - благо один единственный бинарник).
serg515, теперь попробуйте объяснить формально, по какому принципу было сделано это деление. Мне лично непонятно.
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 будет разделение на три файла как и положено согласно представленных имен доменов.
т.к. туда попали домены разных уровней. »
Ото ж.
разделение на три файла как и положено согласно представленных имен доменов. »
Я вижу два: три доменных имени третьего уровня и одно — второго.
последняя строка - первого
последняя строка - первого »
https://ozone.net/post-2942761
как — первого?!
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 - префикс
www - префикс »
www - не "префикс", а ровно такой же домен
www - не "префикс", а ровно такой же домен »
так как практически адреса с www префикс ом и без www префикса считаются одним и тем же адресом, то в данном случае необходимо учитывать именно эту особенность.
ЗЫ.вариант с кол-ом точек отпадает.
если сильно смущает "www" и только это мешает написанию батника ,то в общем можно и без (не учитывая) "www",но предпочтительнее с ним.
вариант с кол-ом точек отпадает »
и по какому критерию тогда выделить эти два
http://www.oszone.net/post
https://ozone.net/post-2942761 »
именно во второй уровень?
и по какому критерию тогда выделить эти два
Цитата serg515:
http://www.oszone.net/post
https://ozone.net/post-2942761 »
именно во второй уровень? »
в данном случае во второй.
если бы было:
http://www.soft.oszone.net/post
https://soft.ozone.net/post-2942761
то в третий и т.д.
param(
$pathUrl = "D:\files\urls.txt",
$pathOut = (Split-Path $pathUrl)
)cls
[uri[]](gc $pathUrl)|%{$_.AbsoluteUri|out-file "$pathOut\$(($_.host-Split'(?<!^www)\.').count).txt" -a}
так как практически адреса с www префикс ом и без www префикса считаются одним и тем же адресом, »
Никогда не считались, и не считаются.
А опосля, окромя www, внезапно вспомнится ftp, потом что-нибудь ещё, и т.д.
в данном случае углубленная теория не требуется.
т.е.с www или без www считать как один домен.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.